日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

解密春晚微信红包十亿级并发压力

發(fā)布時間:2024/9/20 编程问答 40 豆豆
生活随笔 收集整理的這篇文章主要介紹了 解密春晚微信红包十亿级并发压力 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

編者按:

騰訊云消息服務(Cloud Message Queue)是分布式消息隊列服務,能夠為分布式事務部署的不同應用之間或者一個應用的不同組件之間,提供基于消息的可靠的異步通信機制,消息被存儲在高可靠、高可用的CMQ隊列中,多進程可以同時讀寫,互不干擾。

那么,究竟什么是分布式事務呢?舉一個簡單的例子——春晚微信紅包。

?

如果A向B發(fā)了一個紅包,過程大致如下:

?

①?讀取A賬戶余額;
②?A賬戶余額減去紅包金額,并將新的賬戶余額寫入A賬戶中;
③?讀取B賬戶余額;
④?拆開紅包,讀取紅包金額;

⑤?B賬戶余額加上紅包金額,并將新的賬戶余額寫入B賬戶中。

?

對于春晚微信紅包這個達到十億級別的請求來說,如果使用傳統(tǒng)的分布式事務處理方式,微信紅包這個復雜的過程會放大并發(fā)壓力,并且足以導致系統(tǒng)異常。例如上述過程第5步,由于并發(fā)壓力過大常會出現(xiàn)A被扣款,B拆開紅包后無法入賬的情況。

?

騰訊云消息服務(CMQ)的其中一項功能就是將入賬失敗的請求,轉(zhuǎn)入到CMQ隊列中,錢包賬戶系統(tǒng)不斷從CMQ隊列拉取數(shù)據(jù)、嘗試更新操作,直到成功入賬。簡而言之,CMQ保證了入賬消息永不丟失。

?

在此過程中,CMQ消息隊列保證了紅包消息的可靠存儲、傳遞,實時寫三份保證數(shù)據(jù)不丟。資金入賬失敗時可多次重試,避免失敗回滾和頻繁輪詢數(shù)據(jù)庫等傳統(tǒng)方式的弊端。

?

除了增強分布式事務處理的可靠性之外,CMQ還有以下幾點功能:

?

①?異步通信協(xié)議

消息的發(fā)送者將消息發(fā)送到消息隊列后可以立即返回,不用等待接收者的響應。消息會被保存在隊列中,直到被接收者取出。消息的發(fā)送與處理是完全異步的。

?

②?進程解耦

消息隊列幫助減少兩個進程間的耦合度。只要消息格式不變,即使接收者的接口、位置或者配置改變,也不會給發(fā)送者帶來任何改變。并且,消息發(fā)送者無需知道消息接收者是誰,使得系統(tǒng)設計更清晰;相反的,進程間使用遠程過程調(diào)用(RPC)或者socket連接,當一方接口、ip或端口改變了,另一方則必須修改改寫請求配置。

?

③?消息路由

發(fā)送者無需與接收者建立直接連接,雙方通過消息隊列保證消息能夠從發(fā)送者路由到接收者,甚至對于本來網(wǎng)絡不易互通的兩個服務,也可以提供消息路由。

?

④?多終端

用戶系統(tǒng)的多個部分可以同時發(fā)送或接收消息,騰訊云 CMQ 通過消息狀態(tài)來進行消息可用性的控制。

?

⑤?多樣性

每個隊列均可獨立配置,并非所有隊列都要完全相同。在不同業(yè)務場景下的隊列可以進行個性化的配置,例如一個隊列中消息處理時間較長,可以針對隊列屬性進行優(yōu)化。

來源:https://blog.csdn.net/qq_35446207/article/details/52412084

總結(jié)

以上是生活随笔為你收集整理的解密春晚微信红包十亿级并发压力的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。