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

微服務架構(gòu)中的挑戰(zhàn)及應對方式:Outbox 模式

開發(fā) 架構(gòu)
在一個由許多小型服務組成的系統(tǒng)中保持數(shù)據(jù)一致性是困難的,因為它們分散在各處。以下是一些常見問題以及如何處理它們的方法:當服務發(fā)送消息時,同時更新數(shù)據(jù)庫和發(fā)送消息是棘手的問題。

使用 Outbox 模式保持微服務數(shù)據(jù)一致性

在一個由許多小型服務組成的系統(tǒng)中保持數(shù)據(jù)一致性是困難的,因為它們分散在各處。以下是一些常見問題以及如何處理它們的方法:當服務發(fā)送消息時,同時更新數(shù)據(jù)庫和發(fā)送消息是棘手的問題。

在微服務中發(fā)出事件時,我們必須解決如何以事務方式更新數(shù)據(jù)庫并發(fā)出事件的問題。

Outbox 模式

處理這個問題的簡單方法是使用事務性 Outbox 模式。

問題:雙寫問題

當我們必須同時更新兩個不同的系統(tǒng)時,就會出現(xiàn)雙寫問題。例如,如果我們需要在 Apache Kafka 和數(shù)據(jù)庫中記錄事件。由于這些系統(tǒng)沒有連接,我們無法一次性更新它們。我們必須找到一種方法來確保兩者同時更新,或者兩者都不更新。這就是事務性 Outbox 模式發(fā)揮作用的地方。

如果我們的數(shù)據(jù)庫支持事務性更新,我們可以使用它來解決雙寫問題。我們將事務邏輯移到數(shù)據(jù)庫中,而不是嘗試同時更新數(shù)據(jù)庫和 Kafka。每當我們更新數(shù)據(jù)庫時,我們也在同一個事務中更新一個 Outbox 表。可以將 Outbox 想象成一個郵箱,我們將需要發(fā)送的信件放在其中。然后,我們等待郵遞員收集這些信件并將其送到郵局。在我們的情況下,這些信件代表我們想要發(fā)送到 Kafka 的事件,而 Kafka 則充當郵局。但是,我們?nèi)匀恍枰撤N東西扮演郵遞員的角色。

要從 Outbox 表中發(fā)出事件到 Apache Kafka,我們可以使用一個單獨的進程來異步監(jiān)視該表。每當它檢測到事件時,就可以將其發(fā)送到 Kafka。

雙寫問題

一旦事件成功傳遞,它就可以從 Outbox 表中刪除。該進程通常是在原始微服務中的另一個線程中編寫的;但是,它也可以作為完全獨立的應用程序運行。根據(jù)您使用的數(shù)據(jù)庫,您可能可以使用 Kafka 連接器(例如 Postgres-Kafka 連接器)或更改數(shù)據(jù)捕獲(CDC)系統(tǒng)(例如 Debezium)來監(jiān)視表并發(fā)送事件。

Kafka 連接器或更改數(shù)據(jù)捕獲(CDC)

使用 CDC 解決雙寫問題的優(yōu)勢

Outbox 事務模式避免了雙寫問題。原因是狀態(tài)和 Outbox 表將始終以事務方式更新。如果由于某種原因狀態(tài)未能更新,則事件不會寫入 Outbox;這意味著我們可以保證 Outbox 中的數(shù)據(jù)與數(shù)據(jù)庫中的數(shù)據(jù)完全同步。然后,負責將事件傳遞到 Kafka 的獨立進程確保 Outbox 表和 Kafka 保持同步。這使我們能夠保證每個數(shù)據(jù)庫操作都會在 Kafka 中有一個相應的事件,盡管會有一點延遲。

缺點:當傳遞過程向 Kafka 發(fā)出事件時,可能會出現(xiàn)失敗或超時。在這種情況下,為了確保 Kafka 收到數(shù)據(jù),我們必須重試。這些重試可能導致重復的消息;因此,我們向 Kafka 的傳遞保證是至少一次的。我們保證 Outbox 中的每條消息最終都會到達 Kafka,但可能會重復到達。因此,我們需要確保下游系統(tǒng)準備好處理任何重復消息。

在分布式系統(tǒng)中,至少一次的保證是常見的,因此,即使不涉及雙寫問題,實現(xiàn)去重邏輯也是一個良好的做法。例如,接收方在處理 Kafka 消息時可能會失敗,并且當它重新啟動時可能會再次收到相同的消息。

Outbox 模式中的挑戰(zhàn)

我們必須準備好處理這些情況。這可能會導致大量的流量。頻繁的更新意味著數(shù)據(jù)庫可能會始終將表保存在內(nèi)存中,占用大量資源。與此同時,一些數(shù)據(jù)庫在處理刪除時效率不高。它們可能在幕后使用墓碑,并且隨著頻繁的插入和刪除發(fā)生,這些墓碑可能會累積,這會導致資源使用量大增,并在我們的表中引起爭用。如果數(shù)據(jù)庫無法處理此類流量,可能會減慢我們的應用程序,因為請記住,每個寫入都將觸及該 Outbox 表。為了解決這些問題,我們可能需要進行調(diào)整,例如將記錄而不是刪除它們,或者調(diào)整數(shù)據(jù)庫管理墓碑的方式。保留事件可能會帶來長期的好處,因此刪除可能并非絕對必要。一些數(shù)據(jù)庫專門設計用于處理這種類型的流量。

結(jié)論

如果您的系統(tǒng)滿足事務性 Outbox 模式的要求,那么它可以是解決雙寫問題的一種簡單有效的方法。與其他選項(例如事件溯源或監(jiān)聽自己模式)相比,這種方法采用事件優(yōu)先的方法,使用 Kafka 實時通知微服務變更,保持系統(tǒng)一致性。但是,諸如訂單履行之類的組件可能需要編排,無法運行。


責任編輯:華軒 來源: 小技術(shù)君
相關(guān)推薦

2014-11-12 10:23:12

Docker容器IronWorker

2022-04-23 16:58:24

微服務微服務架構(gòu)

2022-04-15 11:37:19

密碼網(wǎng)絡攻擊網(wǎng)絡安全

2022-06-21 10:29:09

CIO首席信息官

2019-09-29 10:29:02

緩存模式微服務架構(gòu)

2025-07-08 07:28:33

2025-05-15 01:00:00

2023-07-12 08:00:40

2022-03-07 15:21:54

微服務組件運維

2022-08-14 07:04:44

微服務架構(gòu)設計模式

2022-08-08 13:55:47

通信設計模式微服務

2022-08-07 22:11:25

微服務架構(gòu)

2010-09-30 10:44:43

2022-01-19 12:39:41

大數(shù)據(jù)

2010-09-13 18:11:38

2023-11-27 16:39:09

數(shù)字化轉(zhuǎn)型

2012-05-22 16:46:49

2022-03-29 10:36:32

技術(shù)架構(gòu)微服務

2015-05-18 10:13:47

點贊
收藏

51CTO技術(shù)棧公眾號

欧美成人免费网| 999精品色在线播放| 久久99国产综合精品女同| 国产精品97| 青青草国产免费| 欧美色视频日本版| 中文另类视频| 国产一区二区在线播放| 国产一区二区三区av电影| 情趣视频网站在线免费观看| 一本色道久久综合亚洲精品小说 | 欧美日韩国产成人在线| 亚洲一区黄色| 高清中文字幕在线| 亚洲图片在线综合| 黄色一区二区三区四区| xxxx69视频| 在线看日韩av| 丝袜诱惑亚洲看片| 日本韩国一区| 亚洲91精品在线| 国产suv精品一区二区6| 影音先锋男人在线资源| 成人免费观看a| 综合色天天鬼久久鬼色| 伦一区二区三区中文字幕v亚洲| 国产精选一区二区| 亚洲激情成人在线| 日韩区一区二| 亚洲高潮无码久久| 欧美一区二区三区婷婷月色| 婷婷久久综合| 特黄特黄的视频| 97在线观看视频国产| 成人sese在线| 两个人看的在线视频www| 精品在线视频一区二区三区| 亚洲电影激情视频网站| 国产一级成人av| 成人在线免费在线观看| 亚洲免费精彩视频| 久久国产精品免费| 美女精品导航| 日韩理论片在线观看| 欧美一级精品大片| 亚洲精品黄色| 啊v视频在线| 91视频最新| 91极品美女在线| 欧美精品三级| 成年人在线观看视频| 97久久人人超碰caoprom欧美| 一区二区不卡在线视频 午夜欧美不卡在 | 国产福利一区二区| 国产直播在线| 伊甸园精品99久久久久久| 日韩午夜精品视频| 日本成人在线一区| 国产精品电影| 潘金莲一级淫片aaaaa免费看| 欧美精品一区二区三区蜜桃视频 | 这里只有精品99re| 亚洲网站在线| 91免费在线| 久久久久久久久四区三区| 欧美影院一区二区三区| 欧美精品18| 在线观看h片| 日韩欧美视频第二区| 亚洲国产福利在线| 国产精品99久久久久久宅男| 欧美97人人模人人爽人人喊视频| 97成人在线免费视频| 久久久久久久999精品视频| 亚洲三级在线免费| 亚洲成人二区| 色哟哟免费在线观看| 亚洲欧洲日本国产| 在线精品高清中文字幕| 国产欧美一区二区精品久导航| 久久99影视| 国产精品无码2021在线观看| 欧美在线一区二区三区四区| 国产午夜一区二区| 国产精品少妇自拍| 成人系列视频| 成人免费网站在线观看视频| 国产人妻互换一区二区| 久久精品国产成人| 亚洲精选免费视频| 欧美久久99| 国产激情视频在线看| 日本不卡在线观看视频| 国产91在线播放| 欧美三级日韩三级| 精品一区二区三区久久久| 国产区一区二| 中午字幕在线观看| 麻豆成人av| 中文日韩在线观看| 亚洲精品免费在线| 久久高清一区| 亚洲一区导航| 欧美孕妇孕交xxⅹ孕妇交| 艳色歌舞团一区二区三区| 操91在线视频| 91国偷自产一区二区使用方法| 捆绑紧缚一区二区三区视频| 91大神精品| yw视频在线观看| 久久亚洲国产成人精品无码区| 97在线日本国产| 欧美精品v国产精品v日韩精品 | 自拍视频国产精品| 亚洲综合一二区| 久久久久久久欧美精品| gogo大尺度成人免费视频| 在线观看免费网站| 日本中文字幕一级片| 欧美专区中文字幕| 精品国产免费久久| 自拍偷自拍亚洲精品播放| 日韩中文字幕1| 欧美绝顶高潮抽搐喷水合集| 高清国产福利在线观看| 无码播放一区二区三区| 风间由美一区二区三区| 日韩一区二区精品视频| 色综合久久天天| 成人短视频下载| 黄色成人在线网址| 视频免费一区二区| а√中文在线8| 99热最新网址| 最新不卡av| 999国产在线| 欧美精品久久久久久久| 日韩免费视频一区| 一区二区三区产品免费精品久久75| 男女性色大片免费观看一区二区| 清纯唯美亚洲经典中文字幕| 性欧美18xxxhd| 在线天堂日本| 国产在线播放观看| 久久精品aaaaaa毛片| 欧美性视频网站| 亚洲最大在线视频| 欧美另类videos死尸| 怡红院av一区二区三区| 99re这里只有精品6| 日韩经典中文字幕一区| 日韩国产一区二区| 99香蕉久久| 在线成人视屏| 午夜成年人在线免费视频| 在线免费日韩| 国产视频一二三区| 免费观看精品视频| 三年中文高清在线观看第6集 | 欧美日韩一区二区三区免费| 国产精品欧美久久久| 欧美高清第一页| 国产亚洲精品久久久久动| 91精品国产综合久久久蜜臀粉嫩 | 国产日韩欧美影视| 欧美成人一二三| 亚洲乱码国产乱码精品精| 欧美日韩亚洲综合一区 | 午夜无码国产理论在线| chinese偷拍一区二区三区| 午夜免费啪视频观看视频| www.浪潮av.com| 日本男女交配视频| 亚洲精品久久区二区三区蜜桃臀| 国产精品theporn88| 91丨九色丨国产在线| 国产精品高潮呻吟久久av野狼| 久久久久久亚洲精品| 日韩视频免费观看| 中文欧美在线视频| 亚洲欧美综合另类中字| 亚洲精品91美女久久久久久久| 欧美一级黄色片| 91精品在线麻豆| 91精品婷婷国产综合久久竹菊| 在线中文字幕一区| 日本道色综合久久| 色一情一乱一乱一91av| 日韩欧美成人网| 在线看日韩精品电影| 欧美视频在线一区| 在线播放欧美女士性生活| 欧美三级电影网站| 欧美高清精品3d| 日韩欧美在线不卡| 亚洲精品一区二区精华| 日韩av最新在线观看| 亚洲欧美成人一区二区在线电影| 亚洲深夜福利在线| 久久伊人91精品综合网站|