国产精品电影_久久视频免费_欧美日韩国产激情_成年人视频免费在线播放_日本久久亚洲电影_久久都是精品_66av99_九色精品美女在线_蜜臀a∨国产成人精品_冲田杏梨av在线_欧美精品在线一区二区三区_麻豆mv在线看

在分布式微服務架構應用中如何實現最終一致性?

新聞 架構 分布式
在分布式系統中,實現強一致性并不容易。即使2PC、3PC階段提交,也無法保證絕對的強一致性。

 在分布式系統中,實現強一致性并不容易。即使2PC、3PC階段提交,也無法保證絕對的強一致性。

我們也不能因為極小的不一致性概率,導致系統整體性能低下,或者擴展性受到影響,并且架構也變得極其復雜。因此,在2PC/3PC提交缺乏大規模應用的情況下,最終一致性是一個較好的方案,在業界得到了大量使用。

一、重試機制

如下圖所示,Service Consumer 同時調用 Service A 和 Service B,如果Service A 調用成功,Service B 調用識別,為了保證最終一致性,最簡單的辦法是重試。

在分布式微服務架構應用中如何實現最終一致性?

重試的時候,要注意設置Service Consumer 的超時時間, 避免長時間等待或卡死,耗盡資源。

Consumer 重試時,需要注意如下幾個方面:

  • 超時時間;
  • 重試的次數;
  • 重試的間隔時間;
  • 重試間隔時間的衰減度;

具體實現細節,可以參考《 基于Spring-tryer 優雅的重試方案》。

二、本地記錄日志

通過本地記錄日志,然后收集到分布式監控系統或者其他后端系統中,啟動一個定期檢查的工具。根據實際情況,可以選擇人工處理。

日志格式:TranID-A-B-Detail

  • TransID為事務ID,可以生成一個隨機序列號;
  • Detail 為數據的詳細內容;
  • 如果調用A成功,則記錄 A success;
  • 如果調用B失敗,或者出現故障,沒有記錄等等,也就是日志中沒有B success,則重新調用B;
  • 可以定期檢測,并處理日志。

收集識別日志的設計圖,如下所示。

在分布式微服務架構應用中如何實現最終一致性?

三、可靠消息模式

考慮到實際業務場景中發生故障的概率概率比較低,可以考慮如下方案。

Service Consumer 在調用 Service B 失敗,先進行重試。如果重試一定的次數仍然失敗,則直接發送消息Message Queue,轉換為異步處理。

可以采用分布式能力比較強的MQ,如Kafka、RocketMQ等開源分布式消息系統,進行異步處理。

  • Service B 可以專門集成一個錯誤處理的組件,不斷從MQ 收集補償消息。
  • 或者獨立一個錯誤處理的組件,獨立處理MQ 的補償消息,包括其他Service 組件的異常。
在分布式微服務架構應用中如何實現最終一致性?

這種方案也有丟失消息的風險,就是Service Consumer 的消息還沒有發出來就掛了,這是小概率事件。

還有一種方案-可靠消息模式,如下圖所示。Service Consumer 發送一條消息給Message Queue Broker,如RocketMQ、Kafka等等。由Service A和Service B 消費消息。

MQ 可以采用分布式MQ,并且可以持久化,這樣通過MQ 保證消息不丟失,認為MQ 是可靠的。

在分布式微服務架構應用中如何實現最終一致性?

可靠消息模式的優點:

  • 提升了吞吐量;
  • 在一些場景下,降低了響應時間;

存在問題:

  • 存在不一致的時間窗口(業務數據進入了MQ,但是沒有進入DB,導致一些場景讀不到業務數據);
  • 增加了架構的復雜度;
  • 消費者(Service A/B)需要保證冪等性;

針對上述不一致的時間窗口問題,可以進一步優化。

  • 將業務分為:核心業務和從屬業務
  • 核心業務服務 - 直接調用;
  • 從屬業務服務 - 從MQ 消費消息;
在分布式微服務架構應用中如何實現最終一致性?

直接調用訂單服務(核心服務),將業務訂單數據落地DB;同時,發送向MQ 發送消息。

考慮到在向MQ 發送消息之前,Service Consumer(創建訂單)可以會掛掉,也就是說調用訂單服務和發送Message 必須在一個事務中,因為處理分布式事務比較麻煩,且影響性能。

因此,創建了另外一張表:事件表,和訂單表在同一個數據庫中,可以添加事務保護,把分布式事務變成單數據庫事務。

整個流程如下:

(1)創建訂單 - 持久化業務訂單數據,并在事件表中插入一條事件記錄。注意,這里在一個事務中完成,可以保證一致性。如果失敗了,無須關心業務服務的回退,如果成功則繼續。

(2)發送消息 - 發送訂單消息到消息隊列。

  • 如果發送消息失敗,則進行重試,如果重試成功之前,掛掉了,則由補償服務去重新發送消息(小概率事件)。
  • 補償服務會不斷地輪詢事件表,找出異常的事件進行補償消息發送,如果成功則忽略。
  • 如果發送消息成功,或者補償服務發送消息成功,則可以考慮刪除事件表中的事件信息記錄(邏輯刪除)。

(3)消費消息 - 其他從屬業務服務,則可以消費MQ中的訂單消息,進行自身業務邏輯的處理。

上述設計方案中,有3點需要說明一下:

(1)直接調用訂單服務(核心業務),是為了讓業務訂單數據盡快落地,避免不一致的時間窗口問題,保證寫后讀一致性。

(2)創建訂單業務直接發送消息給MQ,是為了增加實時性,只有異常的情況,才使用補償服務。如果對實時性要求不高,也可以考慮去掉Message 直接發送的邏輯。

(3)額外引入一張事件表,是為了將分布式事務變成單數據庫事務,在一定程度上,也增加了數據庫的壓力。

責任編輯:張燕妮 來源: 今日頭條
相關推薦

2019-09-05 08:43:34

微服務分布式一致性數據共享

2019-10-12 09:04:59

微服務架構CAP

2024-01-31 09:54:51

Redis分布式

2023-11-22 12:55:59

微服務架構數據庫

2021-06-16 08:33:02

分布式事務ACID

2018-03-13 08:20:48

區塊鏈數據安全

2019-10-11 23:27:19

分布式一致性算法開發

2022-12-19 19:12:17

分布式事務

2019-01-15 17:58:03

微服務架構數據

2019-12-17 08:40:33

微服務架構數據

2021-07-28 08:39:25

分布式架構系統

2023-07-25 09:52:00

本地事務宕機

2025-11-11 02:11:00

微服務分布式事務

2024-06-04 09:51:48

2023-12-27 14:23:10

微服務數據存儲

2024-06-04 10:58:30

2015-10-19 10:42:37

分布式一致性應用系統

2021-11-22 16:30:30

分布式一致性分布式系統

2021-08-13 11:50:23

AnalyticDB 分布式數據庫

2021-07-26 06:33:42

CRDT數據CAP
點贊
收藏

51CTO技術棧公眾號

国产亚洲一区二区在线观看| 免费欧美网站| 日韩极品在线| 中文字幕一区不卡| 久久精品五月婷婷| 久久久久国产精品| 亚洲成av人乱码色午夜| 亚洲精品少妇一区二区| 日韩av电影天堂| 暖暖视频在线免费观看| 亚洲欧美日韩中文字幕一区二区三区| 91香蕉视频网址| 成人av午夜影院| 色哟哟入口国产精品| 少妇网站在线观看| 一区二区三区高清| 中文字幕在线播放第一页| 久久伊人蜜桃av一区二区| 久久精品aaaaaa毛片| 日韩欧美午夜| 国产精品video| 日本女优一区| 欧美一区二区三区免费大片| 99999精品视频| 国产精品亚洲第一区在线暖暖韩国| 国产精品v欧美精品∨日韩| 日韩欧美一区二区三区在线视频| 秋霞成人午夜鲁丝一区二区三区 | 91精品观看| 肉大捧一出免费观看网站在线播放 | 福利一区二区在线| 妺妺窝人体色www看人体| 丁香网亚洲国际| 国产一区二区网| 久久久久久久久蜜桃| 亚州精品一二三区| 婷婷久久综合九色综合绿巨人| 欧美美乳在线| 欧美一区二区成人| 暖暖成人免费视频| 欧美激情奇米色| 五月天久久网站| 久久99精品久久久久久秒播放器| 激情综合色丁香一区二区| 亚洲色成人www永久在线观看| 午夜国产在线| 欧美va亚洲va香蕉在线| 欧洲亚洲精品| 92看片淫黄大片看国产片| 久色成人在线| 国产成人精品无码播放| 精品久久久久久久久久久久| 男人添女人下部高潮视频在线观看 | 中文字幕欧美亚洲| 欧美一区自拍| 精品欧美日韩在线| 成人久久18免费网站麻豆| 成人免费xx| 日韩一区二区视频| 91国内精品| 久久久久久欧美精品色一二三四| 成人自拍视频在线观看| 国产精品精华液网站| 精品不卡在线视频| 日韩精品丝袜美腿| 伊人情人网综合| 一区二区三区在线播| 91桃色在线观看| 国产精品久久久久久久久久久久| 男人的j进女人的j一区| 美女在线一区| 亚洲欧美日韩中文视频| 亚洲另类春色校园小说| 亚洲综合视频一区| 欧美日韩国产一区二区| 日本欧美韩国| 国产一区免费观看| 亚洲欧洲在线观看av| 人人草在线视频| 国产999精品视频| 成人中文字幕合集| av片在线看| 国产99久久精品一区二区 夜夜躁日日躁 | 欧美日韩国产123| 性娇小13――14欧美| 国产精品拍拍拍| 日韩视频在线永久播放| 国产精品任我爽爆在线播放| 欧美欧美一区二区| 午夜精品福利一区二区蜜股av | xx欧美撒尿嘘撒尿xx| 欧美一区二区三区成人| 少妇高潮一区二区三区| japanese在线播放| 欧美一区二区三区白人| 93在线视频精品免费观看| 婷婷六月天在线| 一区二区三区无码高清视频| 久久久久久一区二区| 香蕉国产在线| 国产精品久久久久久久app| 91美女片黄在线| 中文字幕在线免费观看视频| 久久久精品动漫| 日本久久一区二区三区| 久久成人av| 天堂在线资源视频| 久久躁狠狠躁夜夜爽| 久久国产精品露脸对白| 麻豆av在线导航| 91传媒在线免费观看| 亚洲在线观看免费视频| 高清日韩欧美| 五月天婷婷激情视频| 免费91在线视频| 97久久精品人人做人人爽50路| 韩国日本一区| 欧美一区二区影视| 91精品国产综合久久福利软件| 激情久久久久久久| аⅴ资源新版在线天堂| 18成人在线| 精品污污网站免费看| 欧美天天视频| 无遮挡动作视频在线观看免费入口| 国产精品色婷婷视频| 亚洲午夜羞羞片| 色爱综合网欧美| 伊人国产在线看一| 风间由美一区二区三区| 欧美日韩国产一区| 国产精品一页| 99色在线观看| 亚洲人成无码网站久久99热国产| 永久免费毛片在线播放不卡| 成人精品鲁一区一区二区| 欧美亚洲二区| 免费一级特黄录像| 日韩美女免费线视频| 日韩欧美一区二区三区久久| 很黄很黄激情成人| 久草在线新免费首页资源站| 亚洲欧美精品| 中文字幕无线精品亚洲乱码一区 | 最新亚洲激情| 免费在线观看av| 视频一区国产精品| 亚洲视频欧洲视频| 国产三级精品视频| 欧美1级片网站| av小次郎在线| 在线视频不卡国产| 精品亚洲第一| 亚洲天堂精品在线| 成人免费毛片app| www国产精品| 日韩精品成人在线观看| hbad中文字幕| 成人av免费在线看| 日韩国产精品亚洲а∨天堂免| 久久久久久综合| 日韩在线电影| 91蝌蚪视频在线观看| 色香阁99久久精品久久久| 国产成人在线色| 亚洲国产日韩欧美在线| 2020国产精品极品色在线观看| 97国产精东麻豆人妻电影| 97精品国产97久久久久久| 91丨国产丨九色丨pron| 日韩中文在线| 精品伦理一区二区| 免费看毛片的网址| 日韩在线观看精品| 亚洲二区在线视频| 丁香网亚洲国际| 中日韩视频在线观看| 538任你躁精品视频网免费| 神马久久资源| 韩国精品一区二区| 精品国产青草久久久久福利| 夜夜嗨av色一区二区不卡| 亚洲视频一区二区三区| 久久视频在线视频| 一区二区三区av| 亚洲v国产v在线观看| 国产精品久久久久久av福利| 亚洲成色777777在线观看影院| 国产麻豆成人精品| 国产情人综合久久777777| 亚洲成人中文字幕| 亚洲天堂av网| 国产亚洲精品日韩| 日韩成人在线免费观看| 国产精品国产三级国产a| 亚洲美女一区二区三区| 亚洲精品中文字幕av| 久久夜色精品国产| 91在线观看免费高清完整版在线观看| 欧美日韩免费观看一区|