1. 程式人生 > >基於Spring Cloud Stream事件驅動實現微服務最終一致性

基於Spring Cloud Stream事件驅動實現微服務最終一致性

我們結合實際的業務場景使用Spring Cloud Stream驗證了微服務的最終一致性

具體的業務場景是倉儲業務的出庫操作,流程圖如下:

為了簡化業務處理,這裡只針對第6,第7 和第8步做最終一致性的事件驅動設計, 效果如下:

以上方式由於是基於事件驅動的,如果一個節點操作耗費時間很長,

那麼在資料最終一致性得到保障之前的這段真空時間也越長,那麼就有可能暴露給使用者不一致的資料,

因為事件驅動完全是非同步模式的。

Kafka本身的特性可以避免資料重複,可以實現資料時間旅行或者說歷史資料的replay

也不用擔心分散式環境中Kafka佇列訊息的一致性,

Kafka

佇列效能和佇列資料本地序列化處理機制也非常優秀

這些高階特性還需要在實際業務中進行不斷的調優,驗證。