一区二区三区三上|欧美在线视频五区|国产午夜无码在线观看视频|亚洲国产裸体网站|无码成年人影视|亚洲AV亚洲AV|成人开心激情五月|欧美性爱内射视频|超碰人人干人人上|一区二区无码三区亚洲人区久久精品

0
  • 聊天消息
  • 系統(tǒng)消息
  • 評(píng)論與回復(fù)
登錄后你可以
  • 下載海量資料
  • 學(xué)習(xí)在線課程
  • 觀看技術(shù)視頻
  • 寫文章/發(fā)帖/加入社區(qū)
會(huì)員中心
創(chuàng)作中心

完善資料讓更多小伙伴認(rèn)識(shí)你,還能領(lǐng)取20積分哦,立即完善>

3天內(nèi)不再提示

微服務(wù)架構(gòu)中的數(shù)據(jù)一致性解決方案與實(shí)踐

OSC開源社區(qū) ? 來源:得物技術(shù) ? 2023-06-14 10:20 ? 次閱讀
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

1為什么要做服務(wù)之間的數(shù)據(jù)一致性

作為互聯(lián)網(wǎng)公司的研發(fā)工程師,微服務(wù)的架構(gòu)思想對(duì)于各位讀者朋友來說,已經(jīng)不是陌生東西。我們當(dāng)中的大多數(shù)人,或多或少經(jīng)歷過從單體應(yīng)用到微服務(wù)化的系統(tǒng)拆分和演進(jìn)過程。我們按照龐大系統(tǒng)的業(yè)務(wù)功能和特征,將其從一個(gè)單體的大應(yīng)用,逐漸地拆分成很多的子系統(tǒng)的協(xié)同配合完成業(yè)務(wù)功能,甚至拆分后的某些子系統(tǒng)服務(wù),還可能再拆分出來更多的更細(xì)顆粒度的子系統(tǒng)服務(wù)。拆分后的服務(wù)之間,采用PRC調(diào)用方式的通信,也就越來越多。隨之而來的,跨系統(tǒng)服務(wù)之間的數(shù)據(jù)一致性的問題就會(huì)越來越突出了。比如電商系統(tǒng)中營銷活動(dòng)系統(tǒng)的積分和優(yōu)惠券的發(fā)放和扣減,比如電商系統(tǒng)的核心下單核心鏈路上,首頁瀑布流,商詳頁,下單頁等等商品價(jià)格全鏈路一致性等等,支撐這些業(yè)務(wù)功能的實(shí)現(xiàn),往往可能需要依賴來自N個(gè)不同的業(yè)務(wù)系統(tǒng)服務(wù)提供的數(shù)據(jù)讀寫服務(wù)能力來完成。

2如何實(shí)現(xiàn)服務(wù)之間的數(shù)據(jù)一致性

說到數(shù)據(jù)一致性這個(gè)話題,我們可以想到的最常用最熟悉的解決問題的方式就是事務(wù)處理了。它存在的意義是為了保證系統(tǒng)中所有的數(shù)據(jù)都是符合預(yù)期的,并且存在關(guān)聯(lián)關(guān)系的數(shù)據(jù)之間不會(huì)產(chǎn)生矛盾,即數(shù)據(jù)狀態(tài)一致性。事務(wù)的概念,起源于數(shù)據(jù)庫,發(fā)展到今天,幾乎在每一個(gè)業(yè)務(wù)系統(tǒng)中都會(huì)涉及到。尤其在一些大型復(fù)雜的分布式系統(tǒng)中,事務(wù)的概念已經(jīng)不僅局限于數(shù)據(jù)庫,還可以延伸為一切需要保證數(shù)據(jù)一致性的應(yīng)用場景,包括但不限于數(shù)據(jù)庫、事務(wù)內(nèi)存、緩存、消息隊(duì)列、分布式存儲(chǔ)等等,這些都有可能會(huì)用到事務(wù)處理。 今天我們探討的主題是服務(wù)之間數(shù)據(jù)一致性問題。當(dāng)然,實(shí)際生產(chǎn)落地中,在不同業(yè)務(wù)背景下,具備可行性的方案也是非常多的,各有優(yōu)劣和適用場景。我們從中選擇一兩個(gè)具體實(shí)現(xiàn),聊一些相關(guān)的設(shè)計(jì)和實(shí)踐。

3幾個(gè)核心名詞

為了方便正在閱讀本篇文章的同學(xué)對(duì)后續(xù)內(nèi)容的閱讀和理解,我們先對(duì)文章中使用到的幾個(gè)名詞的語義做一些解釋和約定: 業(yè)務(wù)側(cè)系統(tǒng):指的是發(fā)起執(zhí)行業(yè)務(wù)操作的一方系統(tǒng)服務(wù),可以簡單理解為消費(fèi)方。 平臺(tái)側(cè)系統(tǒng):指的是為發(fā)起執(zhí)行業(yè)務(wù)操作而提供基礎(chǔ)能力的一方系統(tǒng)服務(wù),可以簡單理解為服務(wù)方。 執(zhí)行業(yè)務(wù)操作:指的是對(duì)數(shù)據(jù)的讀寫操作需要依賴多個(gè)系統(tǒng)服務(wù)的協(xié)同完成,業(yè)務(wù)側(cè)系統(tǒng)發(fā)起,平臺(tái)側(cè)系統(tǒng)執(zhí)行最終的數(shù)據(jù)讀寫操作。這樣場景中就普遍存在著服務(wù)之間的數(shù)據(jù)一致性問題(備注 :業(yè)務(wù)側(cè)系統(tǒng)和平臺(tái)側(cè)系統(tǒng)是一個(gè)邏輯概念,并非一定要存在具體的應(yīng)用服務(wù)與之對(duì)應(yīng))。 業(yè)務(wù)操作標(biāo)識(shí):指的是業(yè)務(wù)操作應(yīng)該歸屬的業(yè)務(wù)類型或者業(yè)務(wù)場景的標(biāo)識(shí),它是平臺(tái)側(cè)系統(tǒng)創(chuàng)建并且統(tǒng)一管理的,然后發(fā)放給業(yè)務(wù)側(cè)系統(tǒng),在業(yè)務(wù)側(cè)系統(tǒng)的服務(wù)調(diào)用平臺(tái)側(cè)系統(tǒng)提供服務(wù)能力的身份信息。業(yè)務(wù)標(biāo)識(shí)可以設(shè)計(jì)為單層結(jié)構(gòu),也可以設(shè)計(jì)為多層結(jié)構(gòu),符合當(dāng)前系統(tǒng)和業(yè)務(wù)的需求即可。 業(yè)務(wù)操作唯一ID:指的是某個(gè)具體業(yè)務(wù)操作在某一次或者多次重復(fù)執(zhí)行的唯一性標(biāo)識(shí)。生產(chǎn)實(shí)踐中,它一般是由業(yè)務(wù)側(cè)系統(tǒng)的服務(wù)自定義實(shí)現(xiàn)和管理的,也可以是基于平臺(tái)側(cè)系統(tǒng)提供有約束性質(zhì)和方便管理的規(guī)則限制下,再由業(yè)務(wù)側(cè)系統(tǒng)的服務(wù)自定義實(shí)現(xiàn),后者是比較推薦的方式。 業(yè)務(wù)操作記錄表:指的是記錄業(yè)務(wù)操作的日志流水表。生產(chǎn)實(shí)踐中,一般是由業(yè)務(wù)側(cè)系統(tǒng)的服務(wù)創(chuàng)建并且管理。

4方案一:業(yè)務(wù)側(cè)系統(tǒng)保證最終一致性

4.1 核心思想

通過業(yè)務(wù)側(cè)系統(tǒng)的服務(wù)保證數(shù)據(jù)的最終一致性,其核心思想就是業(yè)務(wù)側(cè)系統(tǒng)記錄下來每一次具體業(yè)務(wù)操作的執(zhí)行流水日志信息,并且對(duì)沒有全部成功的變更結(jié)果,觸發(fā)執(zhí)行數(shù)據(jù)一致性的校驗(yàn)核對(duì)工作。

4.2 設(shè)計(jì)原則

平臺(tái)側(cè)系統(tǒng)服務(wù),提供支持執(zhí)行業(yè)務(wù)操作的基礎(chǔ)服務(wù)能力的接口。特別強(qiáng)調(diào)一點(diǎn),這里是需要根據(jù)業(yè)務(wù)操作標(biāo)識(shí)和業(yè)務(wù)操作唯一ID來實(shí)現(xiàn)接口的冪等設(shè)計(jì)。為什么我們有了唯一ID,同時(shí)還是需要有業(yè)務(wù)操作標(biāo)識(shí)?因?yàn)樵趯?shí)際的生產(chǎn)實(shí)踐中,在各種內(nèi)因和外因的背景下,需要兼顧系統(tǒng)的穩(wěn)定性和業(yè)務(wù)迭代的靈活性,很難做到絕對(duì)的全局性唯一ID的生成。更多時(shí)候,只需要在某個(gè)業(yè)務(wù)側(cè)系統(tǒng)的內(nèi)部,保證全局唯一性即可,這也是符合實(shí)際情況的系統(tǒng)設(shè)計(jì)。類似的解決問題的思路,在其他的系統(tǒng)設(shè)計(jì)場景,也是有非常高的借鑒價(jià)值的。

平臺(tái)側(cè)系統(tǒng)服務(wù),提供執(zhí)行業(yè)務(wù)操作后的結(jié)果查詢接口,支持根據(jù)業(yè)務(wù)操作標(biāo)識(shí)和業(yè)務(wù)操作的唯一性ID查詢能力。

業(yè)務(wù)操作記錄表,支持記錄和識(shí)別業(yè)務(wù)操作的標(biāo)識(shí)和每次執(zhí)行的唯一ID。

業(yè)務(wù)側(cè)系統(tǒng)服務(wù),觸發(fā)對(duì)業(yè)務(wù)操作記錄表的數(shù)據(jù)一致性的檢查核對(duì)工作,執(zhí)行核對(duì)的方式,比如實(shí)時(shí)的同步檢查核對(duì)、準(zhǔn)實(shí)時(shí)的異步檢查核對(duì)、定時(shí)任務(wù)的異步檢查核對(duì)等等,為了保證自己和平臺(tái)側(cè)系統(tǒng)的數(shù)據(jù)最終一致性。

4.3 流程圖

4.3.1 數(shù)據(jù)一致性的校驗(yàn)核對(duì)同步執(zhí)行流程

11586b90-09dd-11ee-962d-dac502259ad0.png

4.3.2 數(shù)據(jù)一致性的校驗(yàn)核對(duì)異步核對(duì)鏈路

116dcbfc-09dd-11ee-962d-dac502259ad0.png

5方案二:平臺(tái)側(cè)系統(tǒng)保證最終一致性

5.1 核心思想

通過平臺(tái)側(cè)系統(tǒng)的服務(wù)保證數(shù)據(jù)的最終一致性,核心思想是平臺(tái)側(cè)系統(tǒng)的每一次的數(shù)據(jù)變更,都主動(dòng)地尋找業(yè)務(wù)側(cè)系統(tǒng),來確認(rèn)本次數(shù)據(jù)變更結(jié)果是否符合預(yù)期。

5.2 設(shè)計(jì)的基本原則:

平臺(tái)側(cè)系統(tǒng),提供支持業(yè)務(wù)操作執(zhí)行的基礎(chǔ)服務(wù)能力的接口,需要根據(jù)業(yè)務(wù)操作標(biāo)識(shí)和唯一ID做冪等設(shè)計(jì)。它和方案一的一致性原則類似,省略不再贅述。 平臺(tái)側(cè)系統(tǒng),提供業(yè)務(wù)操作的執(zhí)行結(jié)果確認(rèn)的回調(diào)SPI,可以方便業(yè)務(wù)側(cè)系統(tǒng)來實(shí)現(xiàn),根據(jù)業(yè)務(wù)操作標(biāo)識(shí)和業(yè)務(wù)操作的唯一ID。 業(yè)務(wù)側(cè)系統(tǒng),提供根據(jù)業(yè)務(wù)操作標(biāo)識(shí)和業(yè)務(wù)操作的唯一ID,來判斷兩邊的數(shù)據(jù)是否具備一致性的回調(diào)實(shí)現(xiàn)。

5.3 流程圖

5.3.1 數(shù)據(jù)一致性的校驗(yàn)核對(duì)同步核對(duì)鏈路

1187938e-09dd-11ee-962d-dac502259ad0.png

5.3.2 數(shù)據(jù)一致性的校驗(yàn)核對(duì)異步核對(duì)鏈路

119559f6-09dd-11ee-962d-dac502259ad0.png

6實(shí)踐過程中一些經(jīng)驗(yàn)分享

這一部分,我將會(huì)對(duì)平臺(tái)側(cè)系統(tǒng)和業(yè)務(wù)側(cè)系統(tǒng)的接口設(shè)計(jì)的部分細(xì)節(jié),做一些簡單的擴(kuò)展闡述。希望為大家后續(xù)的研發(fā)工作提供一些思路。后續(xù)的文章中,將會(huì)針對(duì)其中一些具體的解決方案,做更詳細(xì)的闡述。 首先,接口冪等性設(shè)計(jì),將從如下角度進(jìn)行闡述: 數(shù)據(jù)結(jié)構(gòu),狀態(tài)存儲(chǔ),異常處理,返回結(jié)果唯一等等角度做一些總結(jié)分享。

6.1 數(shù)據(jù)結(jié)構(gòu)設(shè)計(jì)

接口冪等性設(shè)計(jì),是基于業(yè)務(wù)操作的標(biāo)識(shí)(這里是稱之為Tag)和業(yè)務(wù)操作的唯一ID來實(shí)現(xiàn)的。業(yè)務(wù)操作標(biāo)識(shí)的設(shè)計(jì),可以是單層的設(shè)計(jì),也可以是多層的設(shè)計(jì)。其中,多層的設(shè)計(jì)是為了滿足業(yè)務(wù)側(cè)系統(tǒng)的存在復(fù)雜并且多業(yè)務(wù)場景的訴求。業(yè)務(wù)操作的唯一ID的生成方式,可以是沒有任何業(yè)務(wù)含義的自增趨勢的不可重復(fù)的ID,比如MySQL的自增主鍵ID,分布式ID生成器等等方式,也可以是業(yè)務(wù)側(cè)系統(tǒng)的某些特定的業(yè)務(wù)字段 ,比如用戶的userId,訂單的orderId,商品的spuId,skuId等等。在實(shí)際實(shí)踐中,后者是我們比較推薦的常用方式,可以實(shí)現(xiàn)在不增加系統(tǒng)復(fù)雜度和額外依賴資源的同時(shí),又可以和業(yè)務(wù)側(cè)系統(tǒng)達(dá)到高度的契合。

6.2 狀態(tài)存儲(chǔ)設(shè)計(jì)

在一般情況下,建議把MySQL存儲(chǔ)當(dāng)做我們首選的存儲(chǔ),MySQL提供非常完善的數(shù)據(jù)一致性保證能力,最簡單的方式是基于數(shù)據(jù)庫的聯(lián)合唯一索引設(shè)計(jì),多次層Tag + 唯一ID的業(yè)務(wù)唯一鍵。但是也是有缺陷的,比如MySQL自身的性能瓶頸和昂貴的存儲(chǔ)成本。性能上的瓶頸,可以通過訪問MySQL的冪等校驗(yàn)之前,增加訪問Redis的冪等校驗(yàn),校驗(yàn)不通過拋出異常,在MySQL冪等校驗(yàn)通過以后,異步刷數(shù)據(jù)到Redis中,這樣保證Redis校驗(yàn)通過的同時(shí)MySQL校驗(yàn)一定是通過的。我們可以接受Redis的冪等校驗(yàn)的不準(zhǔn)確性,僅僅是期望它成為流量漏斗的上層,為MySQL承擔(dān)起流量過濾作用,當(dāng)然你可以有其他的更多的方案來做這件事,甚至組合起來使用。也可以增加分庫分表的策略,來解決MySQL的性能瓶頸。在MySQL的存儲(chǔ)成本是相對(duì)比較高的,我們可以對(duì)歷史的數(shù)據(jù)做歸檔處理,只保留一部分的熱數(shù)據(jù),原則上保持單表的數(shù)據(jù)行數(shù)在500w~1000w之間,同時(shí)也可以有能支持一定量的歷史數(shù)量查詢。同時(shí)這個(gè)過程也需要考慮無鎖處理問題和MySQL空間碎片的問題等等。

6.3 異常處理設(shè)計(jì)

第一步,明確導(dǎo)致發(fā)生異常的原因有哪些?一般可以歸為幾個(gè)分類,網(wǎng)路異常,數(shù)據(jù)格式錯(cuò)誤,業(yè)務(wù)邏輯異常。第二步,針對(duì)特定類型的問題,我們做出相應(yīng)處理方案。比如我們重試機(jī)制,控制重試頻次,重試周期的衰減時(shí)間執(zhí)行控制,處理數(shù)據(jù)處理的終態(tài)的異常數(shù)據(jù)的兜底處理機(jī)制等等方式。

6.4 返回結(jié)果唯一

我需要保證接口的返回的數(shù)據(jù),再多次重復(fù)調(diào)用執(zhí)行,依舊保證完全相同。我們可以基于狀態(tài)機(jī)的流轉(zhuǎn)控制,返回相同的狀態(tài)碼,也可以對(duì)一些核心業(yè)務(wù)參數(shù)做核對(duì)校驗(yàn),如果不通過返回特定的異常碼等等。 此外,平臺(tái)側(cè)系統(tǒng)的提供給基礎(chǔ)能力接口的設(shè)計(jì)要求我們研發(fā)同學(xué)思考和考慮的更多,比如一致性延遲問題,狀態(tài)機(jī)的設(shè)計(jì),并發(fā)問題處理,接口不可用解決等等。

6.5 延遲問題的容忍度

能否在業(yè)務(wù)側(cè)系統(tǒng)服務(wù)期望的時(shí)間點(diǎn),完成數(shù)據(jù)一致性的校驗(yàn)核對(duì)工作?若有延遲,延遲是多少?尤其是極端場景下的延遲是多少? 案例:如果使用定時(shí)任務(wù),做數(shù)據(jù)一致性校驗(yàn)核對(duì)工作。比如一個(gè)周期(假設(shè)1min),還有很多數(shù)據(jù)未完成核對(duì)工作,剩余多少,以及對(duì)業(yè)務(wù)側(cè)系統(tǒng)的影響。解決思路:1. 評(píng)估和設(shè)計(jì)一個(gè)合理的周期大??;2. 選擇全量核對(duì)和增量核對(duì)的選擇;3. 增加核對(duì)的掃描的數(shù)據(jù)范圍的策略;4. 增量核對(duì)確保不丟失未核對(duì)過的數(shù)據(jù),等等。 案例:如果使用MQ消息,我們可能面臨的問題是消息堆積,消息丟失等等場景MQ問題帶來的數(shù)據(jù)不一致問題。 案例:如果使用同步等待方式,是可以將數(shù)據(jù)一致性的延遲降低為0,但是系統(tǒng)吞吐能力和可用性等等,都是無法保證,這也是選擇權(quán)衡的結(jié)果。

6.6 基于狀態(tài)機(jī)的設(shè)計(jì)

基于狀態(tài)機(jī)的設(shè)計(jì)中,一定是有初始態(tài)和終態(tài)的,代表數(shù)據(jù)的核對(duì)工作,有始有終。至于中間態(tài),可以有多個(gè)中間態(tài),也可以是僅有一個(gè)中間態(tài),這個(gè)和實(shí)際的需求和背景相關(guān)聯(lián)的,可以靈活地控制。其中的終態(tài),一般情況下都不會(huì)只有一種,而是有兩大類,一種是成功的終態(tài)表示數(shù)據(jù)實(shí)現(xiàn)最終一致性,一種是失敗的終態(tài)表示不因?yàn)椴豢煽咕艿囊蛩貙?dǎo)致的數(shù)據(jù)不一致產(chǎn)生。失敗的終態(tài),也是可以設(shè)計(jì)出多種狀態(tài),根據(jù)實(shí)際需要來設(shè)計(jì)。比如多次重試從初始態(tài)到終態(tài)的耗時(shí)和處于失敗態(tài)的數(shù)據(jù)核對(duì)檢測工作的占比,一定程度上代表著業(yè)務(wù)側(cè)系統(tǒng)對(duì)數(shù)據(jù)一致性延遲的容忍度。這應(yīng)該是我們必須關(guān)注的核心指標(biāo)信息。

6.7 并發(fā)問題

我們在創(chuàng)建一個(gè)初始化態(tài)的流水日志記錄的時(shí)候,是一個(gè)MySQL的insert操作(假設(shè)你選擇了MySQL作為存儲(chǔ)),需要避免創(chuàng)建多條的業(yè)務(wù)操作唯一ID的記錄。最簡單粗暴的方式,依賴DB的聯(lián)合唯一索引是可以實(shí)現(xiàn)的。但是需要考慮在并發(fā)比較多的時(shí)候,帶來的性能和吞吐問題,甚至導(dǎo)致創(chuàng)建初始化態(tài)就失敗的問題。 對(duì)于相同數(shù)據(jù)并發(fā)寫的問題,我們成功執(zhí)行一條insert語句,大多數(shù)情況可以滿足我們業(yè)務(wù)側(cè)系統(tǒng)的預(yù)期。我們可以采用加鎖,排隊(duì)等待,分組等待排隊(duì)等等手段,限制類似場景的并發(fā)數(shù)來解決。這種方式,隨著業(yè)務(wù)的發(fā)展擴(kuò)張,可能會(huì)面臨系統(tǒng)的吞吐量不足以支撐業(yè)務(wù)的問題。 解決上述的吞吐量下降的問題,我們可能又會(huì)想到采用MQ的方式來削峰填谷,因?yàn)閷?shí)際生產(chǎn)實(shí)踐中,并發(fā)寫問題的往往都是一個(gè)特點(diǎn) 瞬時(shí)性發(fā)生的系統(tǒng)尖刺。采用MQ的方式,可以保證平臺(tái)側(cè)系統(tǒng)創(chuàng)建初始化態(tài)的流水日志的系統(tǒng)吞吐量。 在以上的基礎(chǔ)之上,我們還是可以采用隔離拆分的方式,比如服務(wù)接口拆分層面的隔離,MQ的topic拆分的隔離等等,配合不同的限流熔斷等等系統(tǒng)保護(hù)策略的方式以及不同的系統(tǒng)資源傾斜等等,解決平臺(tái)側(cè)系統(tǒng)的性能問題。

6.8 需要解決不可用

熔斷限流,資源隔離,多元化的降級(jí)策略等等,這些是大家都非常熟悉的系統(tǒng)可用性保障的手段,這部分相關(guān)的內(nèi)容,就不再展開敘述了。

6.9 需要提供可視化和可觀測

完善告警機(jī)制,比如異常狀態(tài)告警,超出閾值告警等等,讓相關(guān)的業(yè)務(wù)側(cè)系統(tǒng)和平臺(tái)側(cè)系統(tǒng)同學(xué)可以快速感知到問題并且介入解決問題。 建設(shè)監(jiān)控大盤,比如 MySQL,Redis,MQ,以及數(shù)據(jù)核對(duì)工作的狀態(tài)的監(jiān)控等等,都是需要我們?nèi)ヒ徊揭徊浇ㄔO(shè)起來的。 定位和排查問題的工具,拆分后的系統(tǒng),其系統(tǒng)的復(fù)雜度是指數(shù)增長的,這個(gè)方面也是非常重要的。

7總結(jié)

在本篇文章中,闡述了兩種處理數(shù)據(jù)一致性問題的解決方案,從核心思想,設(shè)計(jì)原則,系統(tǒng)交互流程等等做了詳細(xì)的闡述,比對(duì)兩種方案,各有優(yōu)劣和各自的適用場景。方案一,業(yè)務(wù)側(cè)系統(tǒng)來保證數(shù)據(jù)的一致性,更適用于對(duì)數(shù)據(jù)的一致性有相對(duì)比較強(qiáng)的耦合依賴關(guān)系的業(yè)務(wù)場景,需要依賴業(yè)務(wù)操作的執(zhí)行結(jié)果做出判斷,執(zhí)行不同后續(xù)業(yè)務(wù)邏輯分支的執(zhí)行。案例: 同一個(gè)商品在不同修改商品信息(變更不同的字段,變更不同表的字段)的入口觸發(fā)異步更新C端緩存的單品維度的商品全量緩存數(shù)據(jù)構(gòu)建,變更的事務(wù)是在成功完成提交以后,方可執(zhí)行本次變更對(duì)應(yīng)的后續(xù)緩存構(gòu)建。方案二,平臺(tái)側(cè)系統(tǒng)來保證數(shù)據(jù)的一致性,更適用于業(yè)務(wù)側(cè)系統(tǒng),關(guān)注點(diǎn)是數(shù)據(jù)的最終執(zhí)行結(jié)果的業(yè)務(wù)場景,案例: 不同業(yè)務(wù)場景入口的庫存扣減和庫存回滾執(zhí)行結(jié)果。最后,提到在生產(chǎn)實(shí)踐過程中一些經(jīng)驗(yàn)和解決方案的總結(jié)分享,每個(gè)點(diǎn)都是值得繼續(xù)深入探討。

*文/kof wang

審核編輯:湯梓紅
聲明:本文內(nèi)容及配圖由入駐作者撰寫或者入駐合作網(wǎng)站授權(quán)轉(zhuǎn)載。文章觀點(diǎn)僅代表作者本人,不代表電子發(fā)燒友網(wǎng)立場。文章及其配圖僅供工程師學(xué)習(xí)之用,如有內(nèi)容侵權(quán)或者其他違規(guī)問題,請(qǐng)聯(lián)系本站處理。 舉報(bào)投訴
  • 接口
    +關(guān)注

    關(guān)注

    33

    文章

    9001

    瀏覽量

    153724
  • 互聯(lián)網(wǎng)
    +關(guān)注

    關(guān)注

    55

    文章

    11249

    瀏覽量

    106392
  • 數(shù)據(jù)一致性

    關(guān)注

    0

    文章

    5

    瀏覽量

    1487
  • 微服務(wù)架構(gòu)

    關(guān)注

    0

    文章

    26

    瀏覽量

    3092

原文標(biāo)題:微服務(wù)架構(gòu)中的數(shù)據(jù)一致性:解決方案與實(shí)踐

文章出處:【微信號(hào):OSC開源社區(qū),微信公眾號(hào):OSC開源社區(qū)】歡迎添加關(guān)注!文章轉(zhuǎn)載請(qǐng)注明出處。

收藏 人收藏
加入交流群
微信小助手二維碼

掃碼添加小助手

加入工程師交流群

    評(píng)論

    相關(guān)推薦
    熱點(diǎn)推薦

    FB-DIMM一致性和故障排除解決方案

    FB-DIMM一致性和故障排除解決方案FB-DIMM一致性和故障排除解決方案
    發(fā)表于 11-26 09:59

    串行數(shù)據(jù)一致性測試和驗(yàn)證測量基礎(chǔ)知識(shí)

    小弟這次給大家?guī)砹舜?b class='flag-5'>數(shù)據(jù)一致性測試和驗(yàn)證測量基礎(chǔ)知識(shí)其中提到了些高速串行信號(hào)的測試測量方法和簡單的原理性介紹,適合初學(xué)者使用。PS。這其中提到的些測量設(shè)備現(xiàn)在已經(jīng)升級(jí)為最新的儀器設(shè)備,但是測試的原理和技術(shù)還是可以讓大家閑
    發(fā)表于 04-16 16:17

    微服務(wù)架構(gòu)下分布式事務(wù)解決方案 —— 阿里GTS

    一致性方案對(duì)應(yīng)用侵入也很高,應(yīng)用需要進(jìn)行大量業(yè)務(wù)改造,成本較高。4 GTS--分布式事務(wù)解決方案GTS是款分布式事務(wù)中間件,由阿里巴巴中
    發(fā)表于 03-16 11:14

    行代碼,保障分布式事務(wù)一致性—GTS:微服務(wù)架構(gòu)下分布式事務(wù)解決方案

    解決方案----GTS。該方案中提到的GTS是目前業(yè)界第款,也是唯款通用的解決微服務(wù)分布
    發(fā)表于 06-05 19:14

    Redis緩存和MySQL數(shù)據(jù)一致原因和解決方案

    高并發(fā)架構(gòu)系列:Redis緩存和MySQL數(shù)據(jù)一致性方案詳解
    發(fā)表于 03-27 15:55

    如何解決stm32 H7 DMA串口發(fā)送數(shù)據(jù)一致性問題?

    如何解決stm32 H7 DMA串口發(fā)送數(shù)據(jù)一致性問題?
    發(fā)表于 12-06 06:05

    VxWorks主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問題。目前主備系統(tǒng)的一致性都采用手工編程來實(shí)現(xiàn)。導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks的異常處理機(jī)制,結(jié)合RISC CPU的特性.設(shè)
    發(fā)表于 12-16 14:21 ?5次下載

    VxWorks主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問題。目前主備系統(tǒng)的一致性都采用手工編程來實(shí)現(xiàn),導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks 的異常處理機(jī)制,結(jié)合RISC CPU 的特性,設(shè)計(jì)實(shí)
    發(fā)表于 09-22 11:32 ?8次下載

    VxWorks主備數(shù)據(jù)一致性功能組件的設(shè)計(jì)與實(shí)現(xiàn)

    數(shù)據(jù)一致性是主備用系統(tǒng)必須解決的問題。目前主備系統(tǒng)的一致性都采用手工編程來實(shí)現(xiàn)。導(dǎo)致代碼結(jié)構(gòu)繁雜,且效率不高。利用VxWorks的異常處理機(jī)制,結(jié)合RISC CPU的特性.設(shè)計(jì)
    發(fā)表于 11-28 16:47 ?11次下載

    P2P平臺(tái)上的數(shù)據(jù)一致性研究

    P2P網(wǎng)絡(luò)是個(gè)自組織的動(dòng)態(tài)網(wǎng)絡(luò),對(duì)等點(diǎn)可以隨意的加入或者離開網(wǎng)絡(luò),因此如何控制數(shù)據(jù)一致性成了P2P網(wǎng)絡(luò)平臺(tái)應(yīng)用擴(kuò)展應(yīng)用的關(guān)鍵點(diǎn),本文引入數(shù)據(jù)一致性算法到P2P網(wǎng)絡(luò)平臺(tái)中來,
    發(fā)表于 02-25 16:06 ?15次下載

    串行數(shù)據(jù)一致性及驗(yàn)證基礎(chǔ)指南

    本基礎(chǔ)指南旨在幫助您了解串行數(shù)據(jù)傳輸?shù)?b class='flag-5'>一般方面,并介紹適用于這些新興串行技術(shù)的模擬和數(shù)字測量要求。 串行數(shù)據(jù)一致性測試和驗(yàn)證測量基礎(chǔ)知識(shí)本手冊將幫助您理解串行
    發(fā)表于 08-05 15:14 ?32次下載

    電能質(zhì)量監(jiān)測數(shù)據(jù)一致性定義及檢測方法_邱麗羚

    電能質(zhì)量監(jiān)測數(shù)據(jù)一致性定義及檢測方法_邱麗羚
    發(fā)表于 01-08 11:07 ?0次下載

    分布式系統(tǒng)的CAP和數(shù)據(jù)一致性模型

    CAP理論的核心思想是任何基于網(wǎng)絡(luò)的數(shù)據(jù)共享系統(tǒng)最多只能滿足數(shù)據(jù)一致性(Consistency)、可用(Availability)和網(wǎng)絡(luò)分區(qū)容忍(Partition Tolerance)三個(gè)特性
    的頭像 發(fā)表于 05-05 23:20 ?2560次閱讀

    如何保障MySQL和Redis的數(shù)據(jù)一致性

    我直接先拋下結(jié)論:在滿足實(shí)時(shí)的條件下,不存在兩者完全保存一致方案,只有最終一致性方案。根據(jù)
    的頭像 發(fā)表于 03-14 16:48 ?1096次閱讀

    深入理解數(shù)據(jù)備份的關(guān)鍵原則:應(yīng)用一致性與崩潰一致性的區(qū)別

    這兩個(gè)概念的差異,并分析它們在數(shù)據(jù)備份的重要,以便讀者能夠更有效地保護(hù)企業(yè)數(shù)據(jù)。 1. 概念區(qū)分: 應(yīng)用一致性和崩潰
    的頭像 發(fā)表于 03-11 11:29 ?1429次閱讀
    深入理解<b class='flag-5'>數(shù)據(jù)</b>備份的關(guān)鍵原則:應(yīng)用<b class='flag-5'>一致性</b>與崩潰<b class='flag-5'>一致性</b>的區(qū)別