国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!

這篇具有很好參考價值的文章主要介紹了RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一?。?!通過可靠生產(chǎn)和可靠消費來完美解決!。希望對大家有所幫助。如果存在錯誤或未考慮完全的地方,請大家不吝賜教,您也可以點擊"舉報違法"按鈕提交疑問。

了解什么是分布式事務(wù)問題

分布式事務(wù)是指涉及多個獨立的計算機系統(tǒng)(也稱為節(jié)點或參與者)之間的事務(wù)處理。在分布式系統(tǒng)中,每個節(jié)點可能各自擁有自己的數(shù)據(jù)存儲和事務(wù)管理機制。分布式事務(wù)的目標(biāo)是保證在跨多個節(jié)點執(zhí)行的一系列操作可以以一致和可靠的方式執(zhí)行和提交,即使在面對故障或并發(fā)操作時也能保持?jǐn)?shù)據(jù)的完整性和一致性。

分布式事務(wù)通常包括以下四個關(guān)鍵屬性:

  1. 原子性(Atomicity):要么所有的操作都成功執(zhí)行并提交,要么所有的操作都回滾,保證所有節(jié)點的數(shù)據(jù)狀態(tài)一致。
  2. 一致性(Consistency):事務(wù)執(zhí)行前和執(zhí)行后系統(tǒng)的狀態(tài)保持一致。
  3. 隔離性(Isolation):事務(wù)在執(zhí)行期間對其他事務(wù)是隔離的,即每個事務(wù)都感覺不到其他事務(wù)的存在。
  4. 持久性(Durability):一旦事務(wù)提交,其結(jié)果必須永久存儲,即使在系統(tǒng)故障的情況下也能恢復(fù)。

實現(xiàn)分布式事務(wù)可以采用兩階段提交(Two-Phase Commit)協(xié)議或三階段提交(Three-Phase Commit)協(xié)議等機制。這些協(xié)議通過協(xié)調(diào)參與者之間的狀態(tài)和決策來實現(xiàn)分布式事務(wù)的一致性。然而,由于分布式事務(wù)需要跨越網(wǎng)絡(luò)和多個節(jié)點進行通信和協(xié)調(diào),因此可能會面臨性能和可靠性等挑戰(zhàn)。

舉例說明:
當(dāng)服務(wù)A通過restTemplate調(diào)用服務(wù)B的接口,服務(wù)A會持久化數(shù)據(jù)到A數(shù)據(jù)庫,而服務(wù)B會持久化數(shù)據(jù)到數(shù)據(jù)庫B,那么如果這個時候數(shù)據(jù)傳輸中間出現(xiàn)了問題,數(shù)據(jù)庫A出現(xiàn)了持久化,而服務(wù)B持久化失敗執(zhí)行了回滾,但是數(shù)據(jù)庫A是無法進行事務(wù)的回滾了,這個時候可能就會造成臟數(shù)據(jù)了

通過RabbitMQ來解決分布式事務(wù)問題

rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

MQ解決分布式事務(wù)問題

可靠生產(chǎn)

主要是通過一張冗余表和定時任務(wù)解決了可靠生產(chǎn)的問題
rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

在本地數(shù)據(jù)庫中創(chuàng)建一張冗余表
(1)如果消息可以正常發(fā)送到MQ,并且MQ給與了確認(rèn)消息,那么這條數(shù)據(jù)會在冗余表中設(shè)置status為1;
(2)如果MQ此時宕機,那么這條數(shù)據(jù)就會存儲到冗余表中,設(shè)置狀態(tài)碼為0(默認(rèn)狀態(tài)),會創(chuàng)建一個定時任務(wù),定時將冗余的消息再發(fā)送到MQ中;
(3)如果發(fā)送次數(shù)超過兩會,也就是status字段為2,那么就會判斷是消息出現(xiàn)了問題,然后通知人工來排查問題所在

可靠消費

rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

1.首先創(chuàng)建一個消費者,監(jiān)聽隊列中的消息
rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器


2.如果消費者在消費消息的時候,出現(xiàn)了異常(代碼中默認(rèn)設(shè)置的是1/0的異常),那么就會觸發(fā)MQ的重試機制,會導(dǎo)致死循環(huán)。解決消息重試的幾種方案:(面試常問)
(1)控制重發(fā)的次數(shù)
在配置文件中進行相關(guān)重試次數(shù)的配置,如果達(dá)到了最大的重試次數(shù),會把這條消息在隊列中移除!
如果我們在配置文件中沒有開啟手動ack,使用默認(rèn)的自動ack,那么會存在消息丟失的情況,一般不會使用這種方法rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

(2)try + catch + 手動ack
①第一步首先要在yaml配置文件開啟手動ack,這樣消息在出現(xiàn)異常,甚至是超過重試次數(shù)的時候就不會被移除,我們還能將這條消息轉(zhuǎn)移到死信隊列中!

rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

②在消費者消費消息的業(yè)務(wù)代碼中,在catch中設(shè)置ack
調(diào)用basicNack方法,參數(shù)requeue,如果設(shè)置成false,那么消息如果消異常,就會將他轉(zhuǎn)移到死信隊列中,如果設(shè)置成true,那么就會將這條消息移除掉

rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

(3)try + catch + 手動ack + 死信隊列處理 + 人工干預(yù)
①在上面開啟手動ack的基礎(chǔ)上,創(chuàng)建死信交換機和死信隊列,綁定到接收消息的隊列中,如果消息出現(xiàn)異常,那么就會將消息轉(zhuǎn)移到死信隊列中

②創(chuàng)建一個新的消費者來監(jiān)聽死信隊列,這個消費者中的業(yè)務(wù)邏輯就不能包含處理異常消息的代碼了,一般到了監(jiān)聽死信隊列的情況下,再往后就得需要人工干預(yù)了!

rabbitmq能實現(xiàn)分布式事務(wù)嗎?,RabbitMQ,分布式,rabbitmq,java,服務(wù)器

③還需要考慮數(shù)據(jù)的冪等性,就是要保證數(shù)據(jù)在數(shù)據(jù)庫中不被重復(fù)添加
直接把訂單號設(shè)置成主鍵,這樣主鍵就一定是唯一的啦!
或者是使用分布式鎖!

至此,關(guān)于RabbitMQ解決分布式事務(wù)的問題介紹完畢,后續(xù)還會持續(xù)更新相關(guān)技術(shù)點,敬請期待~~~文章來源地址http://www.zghlxwxcb.cn/news/detail-856402.html

到了這里,關(guān)于RabbitMQ——解決分布式事務(wù)問題,RabbitMQ的重要作用之一!??!通過可靠生產(chǎn)和可靠消費來完美解決!的文章就介紹完了。如果您還想了解更多內(nèi)容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來自互聯(lián)網(wǎng)用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實不符,請點擊違法舉報進行投訴反饋,一經(jīng)查實,立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費用

相關(guān)文章

  • ChatGPT:分布式事務(wù)解決方案

    隨著互聯(lián)網(wǎng)的發(fā)展和技術(shù)的不斷更新,越來越多的應(yīng)用程序開始采用分布式架構(gòu)。然而,由于數(shù)據(jù)和處理邏輯的分散性和異構(gòu)性,分布式環(huán)境下的事務(wù)處理面臨著許多挑戰(zhàn)。這時候就需要采用分布式事務(wù)來確保系統(tǒng)的一致性和可靠性。 分布式事務(wù)是指在分布式系統(tǒng)中,涉及多

    2023年04月12日
    瀏覽(23)
  • springKafka 重試解決分布式事務(wù)

    springKafka 重試解決分布式事務(wù)

    目錄 1.背景 1.1 名詞解釋、 1.2 業(yè)務(wù)場景 1.3 kafka消息的優(yōu)點和缺點 1.4 kafka客戶端重試框架 2.使用 2.1 引入pom依賴 2.2 定義重試消息,死信隊列 2.3 業(yè)務(wù)執(zhí)行異常處理 3.代碼分析 3.1 服務(wù)啟動掃描配置 3.2 消費消息并重新投遞 3.3 控制消息重試頻率及死信隊列 3.4 控制消息的重試時

    2024年02月04日
    瀏覽(18)
  • 淺談分布式事務(wù)及解決方案

    在講述分布式事務(wù)的概念之前,我們先來回顧下事務(wù)相關(guān)的一些概念。 就是一個程序執(zhí)行單元,里面的操作要么全部執(zhí)行成功,要么全部執(zhí)行失敗,不允許只成功一半另外一半執(zhí)行失敗的事情發(fā)生。例如一段事務(wù)代碼做了兩次數(shù)據(jù)庫更新操作,那么這兩次數(shù)據(jù)庫操作要么全部

    2024年02月08日
    瀏覽(22)
  • (快手一面)分布式系統(tǒng)是什么?為什么要分布式系統(tǒng)?分布式環(huán)境下會有哪些問題?分布式系統(tǒng)是如何實現(xiàn)事務(wù)的?

    《分布式系統(tǒng)原理與泛型》中這么定義分布式系統(tǒng): “ 分布式系統(tǒng)是若干獨立計算機的集合, 這些計算機對于用戶來說就像單個相關(guān)系統(tǒng) ”, 分布式系統(tǒng)(distributed system)是建立在網(wǎng)絡(luò)之上的軟件系統(tǒng)。 就比如:用戶在使用京東這個分布式系統(tǒng)的時候,會感覺是在使用一

    2024年02月08日
    瀏覽(26)
  • Apache Seata -- 一款開源的分布式事務(wù)解決方案

    Apache Seata -- 一款開源的分布式事務(wù)解決方案

    1.1?分布式事務(wù)簡介 (1)事務(wù) 事務(wù)可以看做是一次大的活動,它由不同的小活動組成,這些活動要么全部成功,要么全部失敗。 (2)本地事務(wù) ? 在計算機系統(tǒng)中,更多的是通過關(guān)系型數(shù)據(jù)庫來控制事務(wù),這是利用數(shù)據(jù)庫本身的事務(wù)特性來實現(xiàn)的,因此叫數(shù)據(jù)庫事務(wù),由于

    2024年03月17日
    瀏覽(20)
  • 分布式事務(wù)解決方案Seata(1.6.1)下載與基礎(chǔ)配置

    分布式事務(wù)解決方案Seata(1.6.1)下載與基礎(chǔ)配置

    seata 是一款開源的分布式事務(wù)解決方案,致力于提供高性能和簡單易用的分布式事務(wù)服務(wù)。seata 將為用戶提供了 AT、TCC、SAGA 和 XA 事務(wù)模式,為用戶打造一站式的分布式解決方案。 基于支持本地 ACID 事務(wù)的關(guān)系型數(shù)據(jù)庫。 Java 應(yīng)用,通過 JDBC 訪問數(shù)據(jù)庫。 兩階段提交協(xié)議的

    2023年04月12日
    瀏覽(24)
  • springcloud3 分布式事務(wù)解決方案seata之AT模式5

    springcloud3 分布式事務(wù)解決方案seata之AT模式5

    1.XA模式一階段不提交事務(wù),鎖定資源;AT模式一階段直接提交,不鎖定資源; 2.XA模式依賴數(shù)據(jù)庫機制實現(xiàn)回滾;AT模式利用數(shù)據(jù)庫快照實現(xiàn)數(shù)據(jù)回滾 3.XA模式強一致;AT模式最終一致。 1.2 AT模式原理 一階段: 1.TM發(fā)起并注冊全局事務(wù)到TC; 2.TM調(diào)用分支事務(wù); 3.RM進行注冊分支

    2024年02月07日
    瀏覽(31)
  • SpringCloud Alibaba - Seata 四種分布式事務(wù)解決方案(XA、AT)+ 實踐部署(上)

    SpringCloud Alibaba - Seata 四種分布式事務(wù)解決方案(XA、AT)+ 實踐部署(上)

    目錄 一、Seata 分布式事務(wù)解決方案 1.1、XA 模式 1.1.1、XA模式理論 第一階段: 第二階段: 1.1.2、Seata 框架中的 XA 模式 第一階段: 第二階段: 1.1.3、XA 模式的優(yōu)缺點 1.2.4、實現(xiàn)Seata 的?XA 模式 a)修改 application 文件(每一個參與事務(wù)的微服務(wù)) b)給發(fā)起全局事務(wù)中的入口方法

    2024年04月14日
    瀏覽(19)
  • 分布式:一文吃透分布式事務(wù)和seata事務(wù)

    分布式:一文吃透分布式事務(wù)和seata事務(wù)

    什么是事務(wù) 事務(wù)是并發(fā)控制的單位,是用戶定義的一個操作序列。 事務(wù)特性 原子性(Atomicity): 事務(wù)是數(shù)據(jù)庫的邏輯工作單位,事務(wù)中包括的諸操作要么全做,要么全不做。 一致性(Consistency): 事務(wù)執(zhí)行的結(jié)果必須是使數(shù)據(jù)庫從一個一致性狀態(tài)變到另一個一致性狀態(tài)。一致性

    2024年02月07日
    瀏覽(19)
  • 一文拿捏分布式、分布式緩存及其問題解決

    一文拿捏分布式、分布式緩存及其問題解決

    1.集中式 傳統(tǒng)的計算模型通常是集中式的,所有的計算任務(wù)和數(shù)據(jù)處理都由 單一的計算機或服務(wù)器 完成。然而,隨著數(shù)據(jù)量和計算需求的增加,集中式系統(tǒng)可能會面臨性能瓶頸和可靠性問題。 故而引出了分布式↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓↓

    2024年02月07日
    瀏覽(20)

覺得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包