基于Spring Cloud Stream事件驱动实现微服务最终一致性

我们结合实际的业务场景使用Spring Cloud Stream验证了微服务的最终一致性

 

具体的业务场景是仓储业务的出库操作,流程图如下:

 

为了简化业务处理,这里只针对第6,第7 和第8步做最终一致性的事件驱动设计, 效果如下:

以上方式由于是基于事件驱动的,如果一个节点操作耗费时间很长,

那么在数据最终一致性得到保障之前的这段真空时间也越长,那么就有可能暴露给用户不一致的数据,

因为事件驱动完全是异步模式的。

 

Kafka本身的特性可以避免数据重复,可以实现数据时间旅行或者说历史数据的replay

也不用担心分布式环境中Kafka队列消息的一致性,

Kafka队列性能和队列数据本地序列化处理机制也非常优秀

这些高级特性还需要在实际业务中进行不断的调优,验证。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一支烟一朵花

所有打赏将用于一支烟花AI社区

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值