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

面試官非得跟我抬杠,說MQ掛了怎么辦?

開發(fā) 前端
如果MQ掛掉,勢必會影響你發(fā)消息的邏輯。我們可以仔細思考下這個問題,MQ不像數(shù)據(jù)庫,掛了就沒辦法進行任何操作了。MQ本身就是用于多系統(tǒng)解耦,異步處理等場景的,就算MQ掛了,也不會影響到主流程。

[[422051]]

本文轉(zhuǎn)載自微信公眾號「猿天地」,作者尹吉歡。轉(zhuǎn)載本文請聯(lián)系猿天地公眾號。

一位讀者跟我說,最近去某個公司面試,面試官非得問他MQ掛了如何處理?這位讀者說當時也比較懵,因為在日常工作中也沒去想過這樣的問題,就回答:掛了就報錯了唄,馬上重啟唄,還能咋處理。

其實這個問題也并不是說這位面試官是一種抬杠的行為,因為MQ確實有可能掛掉,是一種正常現(xiàn)象。只不過是說這個掛的概率非常小,畢竟都是集群模式。

如果是平時跟朋友,同事聊這個問題,怎么回答都沒問題。如果是在面試過程中,還是得仔細想想如何去回答比較好,不能太隨意,否則面試結(jié)果可能沒那么理想了。

第一步:統(tǒng)一封裝MQ的操作

如果MQ掛掉,勢必會影響你發(fā)消息的邏輯。我們可以仔細思考下這個問題,MQ不像數(shù)據(jù)庫,掛了就沒辦法進行任何操作了。MQ本身就是用于多系統(tǒng)解耦,異步處理等場景的,就算MQ掛了,也不會影響到主流程。所以這其實就相當于是一個降級的處理,沒什么特殊的點。

要進行降級處理,那么肯定得統(tǒng)一進行處理。不太可能每個發(fā)送消息的地方都去處理一遍,只有逗比才會去這樣做。所以第一步就需要先對MQ的操作進行統(tǒng)一封裝,然后在這個封裝里面去做統(tǒng)一的降級邏輯,不要讓使用方去關(guān)注你的這個降級邏輯。

第二步:降級處理,數(shù)據(jù)存儲

降級可以有兩種方式,一種是將要發(fā)送的消息存儲到數(shù)據(jù)庫中,另一種就是直接寫本地磁盤。

寫數(shù)據(jù)庫

寫數(shù)據(jù)庫相對來說比較簡單,本身程序中都會用到數(shù)據(jù)庫,這個時候只需要單獨加一張表即可。當消息發(fā)送異常的時候,將消息進行存儲。

寫磁盤

寫磁盤跟數(shù)據(jù)庫的作用是一樣,寫磁盤相對來說更加獨立,不依賴數(shù)據(jù)庫。不好的點在于寫磁盤還得考慮寫入的格式,比如消息量大要不要分多個文件寫入之類的問題,整體需要考慮的點比數(shù)據(jù)庫要多。

寫日志

寫日志可能是最簡單的方式了,但是在后期消息補發(fā)的時候就需要人工介入,將失敗的消息撈出來然后重新發(fā)送。

第三步:重發(fā)消息

可以單獨起一個定時任務(wù),周期性的去將這些失敗存儲的消息進行重發(fā),如果你的MQ服務(wù)故障后幾分鐘就恢復了,那么重試的時候消息就能夠成功發(fā)出去了。

也可以人工處理,最重要的是當MQ故障的時候,消息發(fā)送不出去,這些消息要存儲起來,不能丟失,這才是重點。

完整流程如下:

總結(jié)

本文只是給大家提供一些思路,實際上對任何中間件的依賴都需要考慮異常情況,如何回退。當然還有最重要的就是監(jiān)控,在故障后及時發(fā)現(xiàn)問題,快速修復。然后再加上兜底的回退邏輯將發(fā)送失敗的消息重新發(fā)送,保證業(yè)務(wù)的完整性。

關(guān)于作者:尹吉歡,簡單的技術(shù)愛好者,《Spring Cloud微服務(wù)-全棧技術(shù)與案例解析》, 《Spring Cloud微服務(wù) 入門 實戰(zhàn)與進階》作者, 公眾號 猿天地 發(fā)起人。

原文鏈接:http://cxytiandi.com/blog/user/1

 

責任編輯:武曉燕 來源: 猿天地
相關(guān)推薦

2024-08-27 11:59:47

2022-06-24 09:22:15

MySQL自增id

2020-03-28 15:50:18

數(shù)據(jù)庫自增ID維護

2020-08-03 07:04:54

測試面試官應(yīng)用程序

2019-09-18 15:49:06

MySQL數(shù)據(jù)庫面試官

2024-03-27 14:39:48

MySQL數(shù)據(jù)庫分庫分表

2021-08-23 10:59:01

Nginx高可用Linux

2024-09-03 09:20:45

2022-11-04 08:47:52

底層算法數(shù)據(jù)

2021-08-10 15:32:12

Redis緩存數(shù)據(jù)庫

2023-09-12 14:56:13

MyBatis緩存機制

2024-06-06 11:57:44

2024-12-12 14:56:48

消息積壓MQ分區(qū)

2021-07-28 10:08:19

類加載代碼塊面試

2025-03-10 07:05:07

2022-02-14 15:03:50

MySQL程序員面試

2024-07-23 08:21:19

2021-01-06 17:28:00

MySQL數(shù)據(jù)庫緩存池

2023-02-08 08:32:41

輪詢鎖

2023-02-18 13:34:14

Nacos健康檢查機制
點贊
收藏

51CTO技術(shù)棧公眾號

主站蜘蛛池模板: 免费观看一级特黄欧美大片 | 色综合天天天天做夜夜夜夜做 | 亚洲情侣视频 | 亚洲午夜视频在线观看 | 色.com| 91人人看 | 99精品一级欧美片免费播放 | 国产一区2区 | 一区二区三区久久久 | 91视频在线 | 国产一二区在线 | 99亚洲精品 | 一级黄a| 欧美极品视频 | 99热国产在线播放 | 欧美日韩精品在线免费观看 | 精产国产伦理一二三区 | 欧美一级久久久猛烈a大片 日韩av免费在线观看 | 色综合网站 | 亚洲精品视 | 鲁视频| 四虎影院在线播放 | 中文二区 | 欧美精品一区二区三区在线播放 | 99re99| 黑人一级黄色大片 | 一区二区三区不卡视频 | 超碰成人免费 | 精品久久一区 | 男女性毛片 | aaa综合国产 | 国产成人精品网站 | 中文字幕日韩欧美一区二区三区 | 欧美综合久久久 | 伊人网站在线观看 | av在线免费不卡 | 亚洲精品亚洲人成人网 | 蜜桃精品视频在线 | 久久亚洲天堂 | 高清国产一区二区 | 荷兰欧美一级毛片 |