場景
在第三方支付中,例如支付寶犀斋、或者微信,對于訂單請求情连,第三方支付系統(tǒng)采用的是消息同步返回叽粹、異步通知+主動補償查詢的補償機制
1.商戶請求交易接口成功。
2.接受銀行的異步通知蒙具。
3.處理業(yè)務球榆,將通知URL和通知的數(shù)據(jù)放到隊列中。通知隊列是常駐的禁筏。
4.如果通知商戶成功/失敗更新通知狀態(tài)持钉。如果通知失敗,根據(jù)通知間隔重新把通知數(shù)據(jù)放到通知隊列里篱昔。
5*(2^n-1)秒后再次通知每强,n指回調(diào)次數(shù),最大為5次州刽!
每次通知超時時間5秒空执。
支付計費中心對于訂單請求信息的處理:
通過消息同步返回、異步通知穗椅、主動補償查詢相結(jié)合的機制
其中對于訂單的異步通知辨绊,目前的通知策略為3s、30s匹表、60s门坷、120s、180袍镀、300s的階梯性通知默蚌。
返回成功情況下就不繼續(xù)通知了
使用rabbitmq的消息延遲+死信隊列來實現(xiàn)
producer發(fā)布消息,通過exchangeA的消息會被分發(fā)到QueueA,Consumer監(jiān)聽queueA苇羡,一旦有消息到來就被消費绸吸,這邊的消費業(yè)務就是通知前端,如果通知失敗,就創(chuàng)建一個延遲隊列declareQueue锦茁,設置每個消息的ttl然后通過declare_exchange將消息分發(fā)到declare_queue,因為declare_queue沒有consumer并且declare_queue中的消息設置了ttl攘轩,當ttl到期后,將通過DLX路由到queueA,被重新消費
下面小編為大家整理了RabbitMQ需要掌握的知識以及架構(gòu)師必須具備的一些技術總結(jié)出來一套思維導圖和錄制了一些相關視頻蜻势,分享給大家撑刺,供大家參考。
需要相關資料的加群:810589193免費獲任章辍9话!挠铲!
1.1. 分布式架構(gòu)思維
1.2. Zookeeper分布式環(huán)境指揮官
1.3. Nginx高并發(fā)分流進階實戰(zhàn)
1.4. ActiveMq消息中間件
1.5. RabbitMq消息中間件
1.5.1. RabbitMQ及高可用集群部署
1.5.2. 深入學習RabbitMQ消息分發(fā)機制及主題消息分發(fā)
1.5.3. RabbitMQ消息路由機制分析
1.5.4. RabbitMQ消息確認機制分析
1.5.5. RabbitMQ基于Spring完成分布式消息隊列實戰(zhàn)
1.5.6. 安裝配置
· 下載安裝和日常管理
· Web監(jiān)控平臺
1.5.7. 集群化與鏡像隊列
1.6. Kafka百萬級吞實戰(zhàn)
1.7. Memcached進階實戰(zhàn)
1.8. Redis高性能緩存數(shù)據(jù)庫
1.9. MongoDB進階實戰(zhàn)
1.10. 高性能緩存開發(fā)實戰(zhàn)
1.11. Mysql高性能存儲實戰(zhàn)
1.12. FastDFS分布式文件存儲實戰(zhàn)
1.13. 高并發(fā)場景分布式解決方案實戰(zhàn)
一冕屯、開源框架解析:
閱讀、分析源碼是程序員最基本的碼代碼能力也是碼農(nóng)的根本所在拂苹,學習經(jīng)典源碼中所用到的經(jīng)典設計思想及常用設計模式安聘,能夠幫你了解大牛是如何寫代碼的,從而吸收大牛的代碼功力瓢棒。在阿里面試中浴韭,MyBatis,Spring等框架的底層原理是經(jīng)常會被問到的脯宿。
二念颈、架構(gòu)師筑基:
百丈高樓平地起,基礎也是非常重要的连霉,基礎不牢榴芳,自然不用談架構(gòu)。
三跺撼、高性能架構(gòu)
性能一直是讓程序員比較頭疼的問題窟感。當系統(tǒng)架構(gòu)變得復雜而龐大之后,性能方面就會下降歉井,特別是阿里巴巴這樣的一線互聯(lián)網(wǎng)公司最為注重柿祈,因此想進入阿里,性能優(yōu)化一定是要去深入學習與理解的一環(huán)
四哩至、微服務架構(gòu)
關于微服務架構(gòu)的取舍
微服務是現(xiàn)在互聯(lián)網(wǎng)架構(gòu)技術中最火熱的話題之一躏嚎,也是我目前正在學習研究的方向。在面試過程中憨募,面試官很少會問到關于微服務相關的問題紧索。但作為一名開發(fā)者袁辈,一名有技術夢想的程序員微服務架構(gòu)是現(xiàn)在必須要去了解的主流技術:
五菜谣、團隊協(xié)作:
開發(fā)工具工程化
通過一小段描述信息來管理項目的構(gòu)建,報告和文檔的軟件項目管理工具。程序員的戰(zhàn)斗尾膊,往往不是一個人的戰(zhàn)斗媳危,我們?nèi)绾卧谝粋€平臺下高效的去重,進行代碼review冈敛,對功能進行調(diào)整待笑,debug,做到在統(tǒng)一的規(guī)劃下步步為營抓谴,混亂的堆代碼的過程中找到自己的記錄暮蹂。這一切都依賴于有效的工具。
六癌压、B2C項目實戰(zhàn)
項目實戰(zhàn)
要想立足于互聯(lián)網(wǎng)公司仰泻,且能在互聯(lián)網(wǎng)浪潮中不被淹沒,對于項目的開發(fā)實戰(zhàn)演練是不必可少的技能滩届,也是對自身能力的一個衡量集侯,有多少的量對等于獲得多少的回報≈南看似簡單的一個項目需求圖譜棠枉,其中的底層原理,實現(xiàn)原理又能知道多少泡挺?你搭建一個完整的B2C項目平臺到底需要多少知識辈讶?這一切都是需要我們考量的。
高清思維導圖及相關視頻資料獲取方式
加群:810589193粘衬,點擊鏈接加入群聊【Java架構(gòu)學習交流群】:https://jq.qq.com/?_wv=1027&k=5deQUBl