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

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

高級Activemq面試題及答案

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

高級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中直接查詢有沒有消費記錄即可

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 久久国产三级精品 | 91视频专区 | 成视频年人黄网站免费视频 | 亚洲操片 | 四虎 2022 永久网站 | 久久国产网 | 天天插天天插 | 97av麻豆蜜桃一区二区 | 亚洲日本va中文字幕婷婷 | 一级毛片一级毛片a毛片欧美 | 免费人成网站在线高清 | 中文字幕在线欧美 | 午夜看一级特黄a大片黑 | 一本伊人 | 亚洲国产伦理 | 在线观看视频国产 | 午夜官网 | 久久久久久久网 | 久久精彩 | 99国内精品久久久久久久 | 久久影院一区 | 精品色 | 美女牲交视频一级毛片 | 99国产超薄丝袜足j在线观看 | 亚洲高清一区二区三区 | 麻豆狠色伊人亚洲综合网站 | 久久一区二区免费播放 | 在线观看一区二区精品视频 | 高清不卡一区二区 | 我要看免费毛片 | 久久国产免费福利资源网站 | 中文字幕日韩一区二区不卡 | 天海翼精品久久中文字幕 | 劲爆激情欧美毛片 | 全部免费特黄特色大片中国 | 成人动漫影院 | 日本免费一区二区三区毛片 | 美女国产精品 | 中文字幕综合 | 在线免费观看亚洲视频 | 99久久99久久久精品久久 |