构建现代互联网服务的技术基石是分布式系统,然而它到底是什么,其边界究竟处于何处,却时常致使人们心生模糊之感,难以明晰 。
定义的核心分歧
各个类别不同的学者,针对分布式系统所给出的定义,各自有着不同的侧重点。其一,有一种观点着重强调它的物理构成情况,也就是多台彼此独立的计算机,借助网络进行连接。其二,另外有一种观点更侧重于用户的感知方面,觉得这些计算机理应如同一个统一的系统那样开展运作。这些不同的定义,尽管提供了不一样的视角,然而都指向了一个共同的核心要点:多台计算机之间的协同工作。若想要理解分布式系统,不妨先从我们所熟悉的单体应用着手,它的所有功能全部集中在一个程序里面,并且运行在一台服务器之上。
从单体到分布式的演化
当单一服务器承受不住持续增长的用户访问量,或者面对复杂业务时,系统就开始演化了。开发者会把一个庞大的单体应用,依据业务功能拆解成多个相对独立的小型服务。比如说,一个电商系统能够被拆分成用户服务、商品服务以及订单服务等。这些服务经过拆分后,就能够部署到不同的服务器上,进而形成分布式系统的雏形,借此应对高并发和海量数据的挑战。
集群与同质节点
于分布式系统当中,存在着一种格外常见且关键的形态称作集群。集群所指的是,运行着全然相同程序以及配置的一组服务器节点。举例而言,为了去支撑“双十一”的购物高峰,阿里巴巴会进行部署,部署成千上万台运行着相同商品搜索服务的服务器。这些 servers 彼此互为备份,携手共同分担用户请求,它们便是典型的同质节点,其角色差异仅仅体现在程序运行时的临时状态之上。
分布式应用的异质世界
然而,一个完整的分布式系统常常并非仅由同质集群所构成。当订单服务要调用库存服务去扣减库存之际,这两个服务属于不同的程序实体,这两个服务运行于不一样的节点之上,这两个服务的代码以及配置也全然不同。这种由多个功能各不相同、彼此协作的服务共同组建而成的系统,被称作分布式应用。这里的节点是异质的,这些节点各自履行职责,这些节点通过协作达成一个完整的业务流程。
分布式系统的核心优势
分布式系统的首要优势是具备强大的可扩展性,流量一旦激增,能够借由简单地增添服务器节点来将压力分摊,此情形在2025年各大视频平台的春晚直播保障里有了充分的展现。其次是模块化孕育的灵活性,每个服务能够独立开展开发、进行升级以及实施部署。修改商品服务的价格计算逻辑时,不需要重启整个电商系统,这大幅降低了升级风险以及停机时间。
伴随而来的技术挑战
借助分布式系统,能带来极大优势,然而同样也引入了以往从未有过的复杂性。其中,最为关键核心的挑战,有一个乃是数据一致性问题。就比如,有用户在A节点成功完成下单操作,该信息一定要及时把它同步至所有相关的节点,不然的话,就有可能出现超卖的情况。除此之外,在处于动态变化状态的网络环境里,服务要怎样去发现彼此,又要怎样高效且可靠地开展远程调用,这些全都是必须要解决的难题,而这恰恰也就是微服务架构当中服务发现与通信组件所存在的意义所在。
你觉得,于往后五年之中,去解决分布式系统一致性问题的技术,究竟会朝着统一的标准方案的方向发展,还是会依据业务场景进一步分化出更多的专用技术呢?欢迎于评论区把你的见解分享出来,如果认为本文存在帮助,请点赞予以支持。
