大战熟女丰满人妻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中直接查詢有沒有消費記錄即可

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

免費課程推薦 >>
技術文檔推薦 >>
主站蜘蛛池模板: 国产精品99r8在线观看 | 分分操这里只有精品 | 日本天天操 | 久久成人在线观看 | 91在线高清 | 欧美在线激情视频 | 国产精品短视频 | 欧美a级成人淫片免费看 | 免费欧洲毛片a级视频老妇女 | 日韩免费精品一级毛片 | 亚洲国产一区二区三区四区 | 精品国产96亚洲一区二区三区 | 久久在线看 | 久久777国产线看观看精品卜 | 国产精品久久综合桃花网 | 欧美最猛的24k毛片视频 | 久久久国产99久久国产久 | 欧美亚洲精品一区二三 | 欧美一级免费观看 | 写真福利 第 页 在线视频 | 2022久久国产精品免费热麻豆 | 红色一级毛片 | 香蕉亚洲 | 亚洲欧美一区二区三区四区 | 农村寡妇一级毛片免费播放 | 5x性区m免费毛片视频看看 | 久久精品亚洲精品国产欧美 | www.亚洲一区二区三区 | 婷婷综合久久中文字幕一本 | 欧美国产中文 | 91久久国产综合精品女同国语 | 天天透天天狠 | 99热在线精品免费播放6 | 天天爽天天摸 | 伊人久久综合影院首页 | 国产最新一区二区三区天堂 | 国产精品永久免费自在线观看 | 天天槽天天槽天天槽 | a久久久久一级毛片护士免费 | 国产精品视频免费看 | free性欧美极度另类超级大 |