响应式编程与购物车微服务开发探索
1. 分布式系统控制与响应式编程
在分布式系统中,系统控制分散,不存在作为协调器的单一故障点。当这种方法与事件溯源结合时,所有事件都会被存储,并且支持事件重放。即使某个服务宕机,当服务重新上线时,事件存储仍可以重放该事件,服务也能检查更新。
1.1 命令查询职责分离(CQRS)
CQRS 是另一个优势,它可以将读写活动分离,使得任何服务都能独立扩展,这在读写密集型应用场景中非常有用。
1.2 缺点
- 异步编程有时难以处理,仅通过查看代码难以理解其实际工作流程,需要深入理解事件循环。
- 复杂性和集中式代码转移到各个服务中,流控制分散,可能导致系统中出现冗余代码。
1.3 混合方法
由于“一刀切”的方法并不适用,因此出现了几种混合方法,结合了不同的优势。主要有以下两种混合方法:
1.3.1 外部响应,内部编排
这种模式在不同微服务之间采用响应式模式,在服务内部采用编排模式。以购物微服务为例,在产品库存服务、支付服务和推荐产品服务之间采用响应式方法,而在结账服务、处理支付和发货服务之间采用编排方法。
优点 :
- 大多数服务解耦,仅在需要时进行编排,应用的整体流程分布。
- 异步事件和基于事件的方法确保没有单一故障点,事件可以重放。
缺点 :
- 如果服务耦合,可能成为单一故障点,无法独立扩展。
- 同步处理可能导致系统阻塞,资源在请求完成前
超级会员免费看
订阅专栏 解锁全文

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



