基于Axon的CQRS架构应用详解
1. 一致性放松与微服务设计权衡
在微服务设计中,一致性的放松从用户体验角度无法完全隐藏。例如,当订单微服务和库存微服务出现分区时,可能会出现这样的情况:Joe确认购买了库存中的最后一件商品后,Ann仍能将该商品加入购物车并结算,她最终才会知道该商品已无库存。从微服务设计的角度看,这些是暂时的不一致性,但最终会达到一致。Ann的暂时不满也会消除,因为系统会在付款前告知商品不可用,或者在最坏的情况下,已付款后会发起退款。
在微服务架构中,架构设计就是一种权衡,明智的权衡尤为重要。网络在微服务架构中不可避免,因此分区容错技术必须在架构设计时就考虑进去,而不是事后弥补。分区容错的程度会影响应用的可用性和一致性,在架构微服务应用时,平衡这三个特性是关键。
2. Axon框架简介
Axon是一个轻量级框架,可帮助开发者遵循CQRS模式开发应用。它基于Apache 2许可,可免费用于任何应用。Axon并非构建基于CQRS系统的必需框架,反之亦然,但如果想遵循CQRS模式构建应用,Axon是一个不错的选择。CQRS虽不是架构微服务的必要前提,但它能有效解决分布式企业软件系统的可扩展性问题,因此Axon与微服务相得益彰。
在使用Axon时,会广泛利用之前深入学习的Spring Boot和Spring Cloud,这种结合将为开发者提供强大的工具组合。
3. 选择Axon的原因
在开源社区和商业领域,有不少框架可用于架构基于CQRS的解决方案。选择Axon是因为其开源免费,且能与包括Java和Spring在内的主流语言和平台集成。
在示例中,会使用两个不同
超级会员免费看
订阅专栏 解锁全文
464

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



