我们结合实际的业务场景使用Spring Cloud Stream验证了微服务的最终一致性
具体的业务场景是仓储业务的出库操作,流程图如下:
为了简化业务处理,这里只针对第6,第7 和第8步做最终一致性的事件驱动设计, 效果如下:
以上方式由于是基于事件驱动的,如果一个节点操作耗费时间很长,
那么在数据最终一致性得到保障之前的这段真空时间也越长,那么就有可能暴露给用户不一致的数据,
因为事件驱动完全是异步模式的。
扫描二维码关注公众号,回复:
4064140 查看本文章
Kafka本身的特性可以避免数据重复,可以实现数据时间旅行或者说历史数据的replay,
也不用担心分布式环境中Kafka队列消息的一致性,
Kafka队列性能和队列数据本地序列化处理机制也非常优秀
这些高级特性还需要在实际业务中进行不断的调优,验证。