微服务设计与运行全解析
在软件开发领域,开发者们一直致力于为复杂问题提供有效且及时的解决方案。然而,随着应用程序的不断发展,即使是最有纪律的团队也可能在维护和扩展应用时遇到困难。微服务架构作为一种新兴的解决方案,为可持续地交付业务价值提供了新的途径。
1. 微服务应用程序的定义
微服务应用程序是由一组自治服务组成的集合,每个服务专注于做好一件事,并通过协作来执行更复杂的操作。与单一的复杂系统不同,微服务应用程序构建和管理的是一套相对简单的服务,这些服务可能以复杂的方式进行交互。它们通过与技术无关的消息传递协议(点对点或异步)进行协作。
经典软件工程实践提倡高内聚和松耦合是设计良好系统的理想特性。内聚性是指某个模块的元素组合在一起的程度,而耦合性是指一个元素对另一个元素内部工作原理的了解程度。Robert C. Martin的单一职责原则有助于我们理解内聚性:将因相同原因而变化的事物聚集在一起,将因不同原因而变化的事物分开。
在单体应用程序中,我们通常在类、模块或库的层面上设计以实现这些特性。而在微服务应用程序中,我们的目标是在可独立部署的功能单元层面上实现这些特性。单个微服务应该具有高度的内聚性,即负责应用程序中的某个单一功能。同样,每个服务对其他服务内部工作原理的了解越少,就越容易对一个服务(或功能)进行更改,而不会强制其他服务进行更改。
以在线投资工具为例,它可能具有以下功能:
- 开设账户
- 存款和取款
- 下达买卖金融产品(如股票)头寸的订单
- 风险建模和财务预测
让我们详细探讨一下出售股票的过程:
1. 用户从其账户中创建出售某只股票的订单。
2.
超级会员免费看
订阅专栏 解锁全文
168万+

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



