微服务与系统架构解析
1. 分布式系统的动机
分布式系统设计背后存在多种技术和非技术动机:
- 技术动机
- 实际企业场景的分布式特性 :用户或其他系统分布在不同位置,需要通过网络与服务进行通信。
- 可扩展性需求 :当单个应用无法可靠地处理所有客户端负载时,需要将业务逻辑分布到多个主机上。
- 容错性考量 :单个应用是单点故障,将服务分布到多个位置可提高可用性和弹性。
- 非技术动机 :从业务角度出发,将具有连贯业务逻辑和功能的部分分组到不同的服务和应用中,数据和模式也可封装到多个数据库实例中。
2. 分布式带来的挑战
尽管分布式有诸多好处,但也伴随着一定的开销:
- 通信开销 :系统间通信需要定义接口抽象和通信协议(如 HTTP),这需要时间和精力,且通信成为业务用例的关注点。
- 性能开销 :分布式应用最初会降低系统整体性能,因为网络通信比单主机内通信慢,且同步操作会增加处理时间。不过,随着应用的横向扩展,最终会提高系统的整体性能。
- 组织开销 :包含多个应用的分布式系统需要更多的组织工作,如管理多个部署、确保版本兼容性等。
3. 系统景观设计
在考虑分布式系统时,需要设计合理的系统景观:
- 上下文地图和有界上下文 <
超级会员免费看
订阅专栏 解锁全文

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



