中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

activemq死信隊列的消息處理方法是什么

發布時間:2021-12-30 09:50:58 來源:億速云 閱讀:290 作者:iii 欄目:大數據

本篇內容介紹了“activemq死信隊列的消息處理方法是什么”的有關知識,在實際案例的操作過程中,不少人都會遇到這樣的困境,接下來就讓小編帶領大家學習一下如何處理這些情況吧!希望大家仔細閱讀,能夠學有所成!

1.死信隊列出現的原因

跟預想的什么事務啊,重試啊,宕機啊沒dei關系

activemq死信隊列的消息處理方法是什么

Cannot display ObjectMessage body. Reason: Failed to build body from content. Serializable class not available to broker. Reason: java.lang.ClassNotFoundException: xxx

應該是處理此條消息的時候,實體類未序列化?然后我重試下,將實體類序列化去掉,這在運行時會直接異常的,目前原因不詳。

2.如何處理死信隊列中的消息?

這個監聽的思路是對的,就是實施有點問題,總是監聽不到

1:人工處理(太累)

2:定時任務(太耗性能)

3:監聽死信隊列

4:死信隊列寫庫

另外處理消息時,會發生與預想結果不一致,業務是點贊/取消點贊,如果原本目的是取消點贊,但操作失敗redis是有的,進入死信隊列數據庫是沒數據的,我在此期間對這條數據進行了點贊,然后又取消了,那如果此時我處理這條消息,會進行點贊,與原本的目的不一致

3.監聽+時間

創建一個監聽器,監聽死信隊列ActiveMQ.DLQ隊列是否有消息,有消息就進行消費。每次mq入隊前標識一個時間戳,取出死信隊列的消息,與當前庫里的操作時間對比,如果最后一條記錄的時間大于此條消息時間不予處理,否則進行消息補償。redis+mq+mysql進行數據同步時同理

4.redis+mq并發1萬會產生消息積壓嗎?

不會,產生積壓的原因是業務系統不再監控某隊列,即便是1萬并發同事請求,肯定會發生隊列排隊消費,但不會發生積壓,另外如出現此情況,需要短信報警,并手動刪除或腳本刪除此隊列。

activemq死信隊列的消息處理方法是什么

最高等待隊列數

5.一個業務一個隊列,無用隊列怎么處理?

目前接觸的業務,每個業務都需要自定義隊列名,有的隊列等待,有的始終沒處理業務,此時可自定義關閉監測時間內不工作的隊列,如需要時再開啟,以此減少其他隊列的壓力。

配置可看下activemq.xml的47行

constantPendingMessageLimitStrategy用于防止慢話題消費者阻礙生產者和影響其他消費者通過限制保留的消息數<destinationPolicy>            <policyMap>              <policyEntries>                <policyEntry topic=">" >                    <!-- The constantPendingMessageLimitStrategy is used to prevent                         slow topic consumers to block producers and affect other consumers                         by limiting the number of messages that are retained                         For more information, see:
                        http://activemq.apache.org/slow-consumer-handling.html
                   -->                  <pendingMessageLimitStrategy>                    <constantPendingMessageLimitStrategy limit="1000"/>                  </pendingMessageLimitStrategy>                </policyEntry>              </policyEntries>            </policyMap>
<!-- 在這里加上schedulePeriodForDestinationPurge屬性。--><broker xmlns="http://activemq.apache.org/schema/core" schedulePeriodForDestinationPurge="10000"    <destinationPolicy>        <policyMap>            <policyEntries>                <!-- 在這里加上gcInactiveDestinations和inactiveTimoutBeforeGC兩個屬性 -->                <policyEntry queue=">" gcInactiveDestinations="true" inactiveTimoutBeforeGC="30000"/>            </policyEntries>        </policyMap>    </destinationPolicy></broker>

6.為什么預想3萬次的任務執行,結果不一致?

為了測試業務是否會出現頻繁取消確認出現不一致的情況,單接口一萬次,測了3次,目前一共執行了3次,第一次告8552,第二次,第三次是成功的,按理說一共是28552次,但結果是28527,理想是3萬次,在jmeter的結果樹種分析無錯誤日志

activemq死信隊列的消息處理方法是什么

原因不曉得。勾選Scroll無用。

這個隊列加時間跟

如何解決redis的并發競爭key問題相似,處理方案也是相似

activemq死信隊列的消息處理方法是什么

“activemq死信隊列的消息處理方法是什么”的內容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業相關的知識可以關注億速云網站,小編將為大家輸出更多高質量的實用文章!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

柯坪县| 盐亭县| 玛曲县| 师宗县| 都昌县| 行唐县| 罗田县| 遂溪县| 华宁县| 应城市| 吐鲁番市| 延寿县| 鸡东县| 罗田县| 长丰县| 阜南县| 满城县| 阿拉善左旗| 石狮市| 上饶县| 衡水市| 元阳县| 南城县| 丁青县| 崇义县| 湟中县| 社旗县| 阿荣旗| 桐庐县| 镇远县| 顺义区| 万源市| 固原市| 晋城| 永安市| 仁布县| 商洛市| 肇州县| 大石桥市| 五华县| 通江县|