分布式应用架构:原理、模式与生产实践
1. 分布式应用架构概述
在分布式系统中,不再只有单个命名服务器,而是有许多服务器,它们以唯一 ID(如通用唯一标识符 UUID)标识。例如宠物商店应用,不再是单一的整体模块,而是由众多相互交互但松散耦合的服务组成,像 pet - api、pet - web 和 pet - inventory 等。并且,每个服务会在服务器集群的多个实例中运行。
虽然这些概念在没有容器的环境中同样适用,但容器和容器编排引擎能更高效、直接地解决分布式应用架构中的诸多问题。
2. 分布式应用架构的模式和最佳实践
2.1 松散耦合组件
将复杂问题分解为更易管理的子问题是解决复杂问题的有效方法。软件开发也是如此,把复杂应用拆分成相互协作的小组件,且这些组件之间松散耦合,开发会更轻松。组件 A 无需了解组件 B 和 C 的内部工作原理,只需通过定义良好的接口与它们通信。
如果每个组件都有简单明确的公共接口,就能独立开发,且在开发过程中可用存根或模拟对象替换其他组件进行测试。
2.2 有状态与无状态组件
在 IT 领域,数据也被称为状态。创建或修改持久数据的应用服务是有状态组件,如数据库服务或创建文件的服务;不创建或修改持久数据的是无状态组件。
在分布式应用架构中,无状态组件更易处理,可轻松进行伸缩,能快速在集群的不同节点上停止和重启。因此,设计系统时应尽量使多数应用服务为无状态,将有状态组件置于应用边界并限制其数量。
2.3 服务发现
构建由多个相互通信的组件或服务组成的应用时,需要一种机制让组件
分布式架构核心模式与实践
超级会员免费看
订阅专栏 解锁全文
2866

被折叠的 条评论
为什么被折叠?



