成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

消息隊列誰都會用,程序的好壞在于如何保證消息萬無一失

開發 前端
消息隊列將我們系統從同步調用改成了異步調用,將我們的系統進行解耦,但隨之也帶來一個問題,那便是如何保證消息使命必達。

 消息隊列將我們系統從同步調用改成了異步調用,將我們的系統進行解耦,但隨之也帶來一個問題,那便是如何保證消息使命必達。

 

 

[[345458]]

 

 

舉個例子,在電商系統中,用戶下單后,我們通常是使用異步消息去通知購物車系統清空對應的購物車物品的。如果我們不能夠保證消息使命必達,那么就意味著有些用戶下完單之后,他的購物車還有原來這些物品,造成不好的體驗。所以,一個可用的消息隊列,必須是可靠,那么如何去保證消息生產到消費的過程中,是可靠的呢。

一般來說,消息隊列隊列有三個重要步驟,分別是生產-存儲-消費。這一點很多同學都會沒有注意到,甚至很多人調用消息隊列的時候都會經常忘記去處理異常。在通常情況下,生產消息都是可以成功的,但是,在一些極端的條件下,例如網絡波動,或者機器宕機,往往會造成消息入隊失敗,這就要求我們需要處理對應的異常。在消息入隊失敗的時候,進行重試或者直接回滾相應的事務,并且告訴前端處理失敗。

 

其次,則是消息的存儲階段。雖然我們的消息隊列已經經歷了非常多場景的考驗,但是在生產環境中,應用的重啟也是常態。為了避免應用重啟帶了的數據丟失,我們最好是將數據進行落盤,即便是我們重啟應用,也不會造成數據丟失。其次,硬件的損壞不可避免,服務器也是有使用壽命的,也是有可能遭遇到意外,如果我們的數據只存在一臺機器上,一旦機器損壞,就有可能會丟失數據,所以,常見的做法是每條消息都會至少在兩臺機器上寫成功才會返回成功。為什么是兩臺機器呢,因為從概率學的角度上來說,同一個集群在不同機房的兩臺機器,同時遇到故障的概率幾乎為0。

最后則是在消息的消費階段,很多同學有非常不好的編寫代碼習慣,就是不處理異常,無論代碼執行的結果如何,都會告訴消息隊列消息消費成功,這是非常不好的。我們就曾經遇到這樣一個例子,每次用戶成交之后,我們都會回調給商家,通知商家數據變更,可以來拉取數據。這只是一個非常簡單的HTTP GET請求,按道理來說,是很難失敗的。但是,有些商家的開發能力差,服務器經常宕機,剛好這個商家今天就成交這一單。因為沒有處理HTTP的異常,消息被判斷為消費成功,就會造成商家的數據錯誤。

 

如果你以為只要做好重試就行了,那就太天真了。在現代分布式系統中,有一種特殊情況特別需要程序員注意的,那就是對于超時的處理,在程序異常中,很多異常我們都可以認為下游系統處理失敗了,唯有超時異常,我們很難去判斷下游系統是否已經處理成功。這就需要我們對消息隊列進行設計,盡量保證我們的系統是冪等的,從而保證消息不會因為重復消費而帶來新的問題。

責任編輯:華軒 來源: 今日頭條
相關推薦

2020-02-07 10:14:07

程序員設計人生第一份工作

2013-02-01 10:48:52

2013-01-06 10:57:03

2013-08-12 10:37:14

云服務云計算

2021-06-22 06:13:05

私有云混合多云網絡架構

2011-07-19 21:20:01

2021-01-11 18:36:06

Redis分布式鎖數據庫

2017-10-26 14:15:32

測試工具設計開發

2019-06-25 08:46:04

Redis分布式鎖JVM

2016-11-28 15:54:17

聯想網盤

2022-02-07 19:28:02

LoRa廣域網5G

2021-08-31 15:57:32

勒索軟件零信任網絡罪犯

2014-07-29 15:48:08

2025-06-18 16:40:06

網絡安全數據安全備份

2021-04-28 18:26:35

命令參數git

2020-10-26 09:19:11

線程池消息

2013-06-07 17:25:46

路由技術路由器

2023-08-30 19:10:17

2020-05-13 21:00:27

Windows 10Windows操作系統

2013-08-23 09:55:14

Windows 8.1
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 久久99精品久久久久蜜桃tv | 久久国产精品偷 | 成人午夜激情 | 欧美一区 | 国产成人a亚洲精品 | 亚州精品天堂中文字幕 | 天天干天天爱天天操 | 日韩精品在线一区二区 | 日韩精品一区二区三区老鸭窝 | 国产小视频在线观看 | 久久免费观看视频 | 日本公妇乱淫xxxⅹ 国产在线不卡 | 日本黄视频在线观看 | 91在线区 | 97视频免费 | 99re视频在线观看 | 欧美激情视频网站 | 精品视频一区二区 | www国产精品 | 日本精品一区二区三区在线观看 | 欧美日韩一区精品 | 国产成人免费视频 | 精品二 | 精品粉嫩aⅴ一区二区三区四区 | 99精品国产一区二区三区 | 成人激情视频免费观看 | 狠狠撸在线视频 | 日本亚洲一区 | 午夜成人在线视频 | 欧美日韩一区二区三区视频 | 午夜久久久 | 亚洲一区二区精品视频 | 亚洲精品一区国语对白 | 国产精品小视频在线观看 | 丁香久久| 免费一区二区 | 日韩av一区二区在线观看 | 久久99精品久久久久久青青日本 | 国产三级在线观看播放 | 祝你幸福电影在线观看 | 在线黄色影院 |