大战熟女丰满人妻av-荡女精品导航-岛国aaaa级午夜福利片-岛国av动作片在线观看-岛国av无码免费无禁网站-岛国大片激情做爰视频

專注Java教育14年 全國咨詢/投訴熱線:400-8080-105
動力節點LOGO圖
始于2009,口口相傳的Java黃埔軍校
首頁 hot資訊 高級Activemq面試題及答案

高級Activemq面試題及答案

更新時間:2021-11-23 09:44:28 來源:動力節點 瀏覽1670次

高級Activemq面試題及答案:

高級Activemq面試題及答案

具體哪些情況下會引起消息重發?

1.client用了transaction且再session中調用了rouback()

2.client用了transaction且再調用了commit()之前關閉或者沒有commit

3.client再client-ACKNOMEDGE的傳遞模式下,在session中調用了recaver()

請說說消息重發時間間隔和重發次數?

間隔:1

次數:6

有毒消息poison ACK 談談你的理解

一個消息被redelivedred超過默認的最大重發次數(默認次數是6)時,消費端會給MQ發送一個“poison ack” 表示這個消息有毒,告訴broker不要再發了,這個時候broker會把這個消息放到DLQ(死信隊列)

死信隊列?

ActiveMQ中引入了 死信隊列 的概念,即一條消息再被重發多次后(默認是6)

將會被ActiveMQ移入死信隊列,程序員 也就是我們可以在這個Queue中查看處理出錯的消息,進行人工干預。

死信隊列的使用:處理失敗的消息

一般生產環境中,使用MQ的時候,設計兩個隊列:一個核心隊列,一個死信隊列

核心業務隊列就是比如用訂單系統發送訂單消息,然后另外一個死信隊列用來處理異常的情況。

假如第三方物流系統故障了,此時無法請求,那么倉儲系統每次消費到一條訂單消息,嘗試通知發貨和配送都會遇到對方的接口報錯。此時倉儲系統就可以把這條消息拒絕訪問或者標志為處理失敗。一旦標志這條消息處理失敗后,MQ就會把這條消息轉入提前設置好的一個死信隊列中,然后你會看到的就是在第三方的物流系統故障期間,所以訂單消息全部處理失敗,全部轉入死信隊列,然后你的倉儲系統得到專門有一個后臺線程監控第三方物流系統是否正常運行,能否請求到,不停的監控,一旦發現對方恢復正常,這個后臺線程就可以從死信隊列消費出來 處理失敗的訂單,重新執行發貨和配送的通知邏輯

如何保障消息不被重復消費呢?冪等性問題等等

網絡延遲傳輸,會造成ActiveMQ重試中,在重試過程中,可能會造成重復消費

如果消息是做數據庫插入操作;給這個消息做一個唯一主鍵,那么就算出現重復消費,就導致主鍵沖突,避免出現臟數據

如果上述面兩種情況還是不行,準備一個第三方服務來做消費記錄,以redis為例,給消息分配一個全局ID,只要消費國這個消息,將 以K-V的形式寫入redis,那么消費者開始消費前,先去redis中直接查詢有沒有消費記錄即可

提交申請后,顧問老師會電話與您溝通安排學習

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 亚洲成人综合网站 | 成人999 | 欧美一级毛片免费观看 | 免费看一级欧美毛片 | 精品视频一区二区三区在线播放 | 国产99在线观看 | 国产精品久久久久亚洲 | 亚洲欧美日本视频 | 日韩天天摸天天澡天天爽视频 | 国内精品久久久久久不卡影院 | 一级毛片美国一级j毛片不卡 | 波多野结中文字幕在线69视频 | 日韩伦理一区二区 | 97在线免费视频 | 欧美精品亚洲精品日韩专区va | 国产专区在线 | 国产免费一区二区三区免费视频 | 日本无翼乌全彩无遮挡动漫 | 99久久99久久精品免费看子伦 | 国产免费久久精品久久久 | 四虎影视国产884a精品亚洲 | 久久久久久久亚洲精品 | 久久九色综合九色99伊人 | 日日摸夜夜嗷嗷叫日日拍 | 国产九九热 | 国产成人午夜片在线观看 | 在线视频亚洲 | 思99热精品久久只有精品 | 9久re热视频这里只有精品 | 天天草夜夜骑 | 2019国产精品视频 | 亚洲视频在线观看免费视频 | 九九热视频免费观看 | 久久黄色影片 | 神马我不卡在线观看 | 欧美毛片 | 国产亚洲第一 | 一级a爱片久久毛片 | 久久国产欧美另类久久久 | 香蕉国产精品 | 久操这里只有精品 |