導讀 | 分散式事務往往是服務化的痛點,很多場景透過業務避免了分散式事務,但是還是存在一些場景必須依賴分散式事務,下面來講講如何處理分散式事務 |
解決分散式事務問題的方法有很多種,網路上有很多部落格也提供了各種解決方案。總結起來,一般可以分為以下兩種方式: 1. 兩階段提交(Two-Phase Commit,簡稱2PC):這是常見的分散式事務解決方案。在這種方法中,協調者節點負責協調參與者節點的操作,並確保所有節點在提交或回溯時達成一
剛性分散式事務和兩階段提交是一種實現強一致性的機制。 剛性分散式事務是指在分散式系統中,多個參與者節點執行的一系列操作需要確保原子性,即要麼全部成功,要麼全部失敗。這種機制要求所有參與者節點在事務執行過程中遵循相同的協議,透過協調者節點的指導來實現事務的
柔性分散式事務是一種在分散式系統中處理事務的方法。它採用最大努力提交的策略,即盡最大努力去完成事務的提交,但是也允許部分操作失敗。在柔性分散式事務中,通常會使用TCC(Try-Confirm-Cancel)模式來實現事務的管理。 TCC模式將交易分解為三個階段:嘗試(Try)、確認(Confirm)和取消(
先解決分散式交易前提保障:介面必須冪等性,防止訊息重複傳送對業務影響
二 可靠訊息系統設計(這個感覺不錯比較簡單,就拿來分享下)#如上圖
開始執行 例如:
try{
if(prepare()) { //預傳送階段
doService(); //執行業務邏輯
updateMsgStatus();//更新訊息為確認狀態
}
}
1 預先傳送訊息,try階段,如果預先傳送訊息失敗了,業務還未執行,所以 系統A,B還是一致性的 不需要處理
這一點容易理解
2 預發送訊息成功了,開始執行業務邏輯。執行成功 更新預發送訊息轉態為確認發送。如果 此時業務邏輯執行失敗了,那預發送訊息就不會跟新狀態,此時訊息確認系統就開啟工作,到業務系統1上回查此訊息狀態,此時發現業務執行失敗了,就更新預發送狀態至失敗狀態。
3 如果此時 業務執行成功了訊息也被更新成確認發送了 那就ok 完美。如果訊息更新失敗,還是由訊息確認系統回查轉態 更新此訊息被刪除狀態還是確認發送狀態。
4 訊息者開始消費
1> 例如消費失敗了,此時產生不一致, 訊息恢復系統偵測訊息狀態,重新傳送訊息
2>如果執行業務失敗了,此訊息就不會被確認了,還是由訊息恢復系統偵測訊息狀態,重新傳送訊息
3>如果ask失敗了,還是以上邏輯重新發送上訴重新發送當然有次數限制,不能一直發送,超過最大次數就要進入死信隊列,等待人工幹預了
4> ask成功,訊息也就成功消費了,完美,解決了訊息可靠服務
三 努力提交這個比較簡單 ,將失敗的訊息重複提交,即時性比較弱的一些場景,確保訊息推送成功。
例如交易完成推播第三方訊息。此時可以使用努力提交
以上是探討實現可靠的訊息服務的詳細內容。更多資訊請關注PHP中文網其他相關文章!

簡介:通過基於Linux的道德黑客攻擊數字邊界 在我們越來越相互聯繫的世界中,網絡安全至關重要。 道德黑客入侵和滲透測試對於主動識別和減輕脆弱性至關重要

Linux基礎學習從零開始的方法包括:1.了解文件系統和命令行界面,2.掌握基本命令如ls、cd、mkdir,3.學習文件操作,如創建和編輯文件,4.探索高級用法如管道和grep命令,5.掌握調試技巧和性能優化,6.通過實踐和探索不斷提陞技能。

Linux在服務器、嵌入式系統和桌面環境中的應用廣泛。 1)在服務器領域,Linux因其穩定性和安全性成為託管網站、數據庫和應用的理想選擇。 2)在嵌入式系統中,Linux因其高度定制性和高效性而受歡迎。 3)在桌面環境中,Linux提供了多種桌面環境,滿足不同用戶需求。

Linux的缺點包括用戶體驗、軟件兼容性、硬件支持和學習曲線。 1.用戶體驗不如Windows或macOS友好,依賴命令行界面。 2.軟件兼容性不如其他系統,缺乏許多商業軟件的原生版本。 3.硬件支持不如Windows全面,可能需要手動編譯驅動程序。 4.學習曲線較陡峭,掌握命令行操作需要時間和耐心。

Linuxisnothardtolearn,butthedifficultydependsonyourbackgroundandgoals.ForthosewithOSexperience,especiallycommand-linefamiliarity,Linuxisaneasytransition.Beginnersmayfaceasteeperlearningcurvebutcanmanagewithproperresources.Linux'sopen-sourcenature,bas

Linux的五個基本組件是:1.內核,管理硬件資源;2.系統庫,提供函數和服務;3.Shell,用戶與系統交互的接口;4.文件系統,存儲和組織數據;5.應用程序,利用系統資源實現功能。

開啟智能家居新篇章:基於Ubuntu的開源家庭自動化系統 智能家居技術徹底改變了我們與生活空間的互動方式,為日常生活帶來了便利、安全和能源效率。從遠程控制燈光和電器,到監控安全攝像頭和自動化氣候控制,智能家居技術變得越來越普及。 然而,許多商業智能家居系統存在局限性:高昂的成本、隱私問題以及有限的兼容性。幸運的是,開源軟件解決方案結合Ubuntu的強大功能,提供了一種替代方案——允許用戶創建可定制、經濟高效且安全的智能家居生態系統。 本指南將探討如何使用Ubuntu和開源工具設置家庭自動化系統。

Linux與Windows:2025比較 考慮從MacOS或Windows切換? Linux可能是答案。 儘管MacOS用戶會發現相對平滑的過渡(由於MacOS的UNIX Core),但Windows用戶需要適應。此指南HIG


熱AI工具

Undresser.AI Undress
人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover
用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool
免費脫衣圖片

Clothoff.io
AI脫衣器

AI Hentai Generator
免費產生 AI 無盡。

熱門文章

熱工具

EditPlus 中文破解版
體積小,語法高亮,不支援程式碼提示功能

SublimeText3 Linux新版
SublimeText3 Linux最新版

WebStorm Mac版
好用的JavaScript開發工具

禪工作室 13.0.1
強大的PHP整合開發環境

Atom編輯器mac版下載
最受歡迎的的開源編輯器