成人午夜视频全免费观看高清-秋霞福利视频一区二区三区-国产精品久久久久电影小说-亚洲不卡区三一区三区一区

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理

今天就跟大家聊聊有關(guān)mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理,可能很多人都不太了解,為了讓大家更加了解,小編給大家總結(jié)了以下內(nèi)容,希望大家根據(jù)這篇文章可以有所收獲。

專注于為中小企業(yè)提供網(wǎng)站設(shè)計(jì)制作、網(wǎng)站建設(shè)服務(wù),電腦端+手機(jī)端+微信端的三站合一,更高效的管理,為中小企業(yè)隴西免費(fèi)做網(wǎng)站提供優(yōu)質(zhì)的服務(wù)。我們立足成都,凝聚了一批互聯(lián)網(wǎng)行業(yè)人才,有力地推動(dòng)了1000+企業(yè)的穩(wěn)健成長(zhǎng),幫助中小企業(yè)通過(guò)網(wǎng)站建設(shè)實(shí)現(xiàn)規(guī)模擴(kuò)充和轉(zhuǎn)變。

昨天試了半天為啥監(jiān)聽(tīng)不到死信隊(duì)列的消息,原因是打開(kāi)方式不對(duì),還有死信隊(duì)列就一條消息,沒(méi)意思。

什么事務(wù)啊?我都沒(méi)啟用事務(wù),他怎么就進(jìn)去了呢?

你不說(shuō)重試是默認(rèn)6次嗎?我都沒(méi)改配置,怎么就進(jìn)了?

1.如何讓消息進(jìn)入死信隊(duì)列?

1.給ActiveMQConnectionFactory配上重發(fā)機(jī)制;2.給DefaultMessageListenerContainer配置事務(wù);

或者給消息設(shè)置過(guò)期時(shí)間,過(guò)期后進(jìn)入死信隊(duì)列

我都沒(méi)啟用事務(wù),說(shuō)那些都是扯淡,將一個(gè)業(yè)務(wù)消費(fèi)者干掉,然后將此消費(fèi)者變?yōu)楸O(jiān)聽(tīng)死信隊(duì)列消費(fèi)者,jmeter開(kāi)10000線程循環(huán)去調(diào)

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理

消費(fèi)者消費(fèi)不到,然后每次消息出列+1,然后死信隊(duì)列+1

關(guān)于重試機(jī)制RedeliveryPolicy

在ActiveMQConnectionFactory可設(shè)置RedeliveryPolicy,如果不設(shè)置則為默認(rèn)

 /**     * Sets the global default redelivery policy to be used when a message is delivered     * but the session is rolled back  會(huì)話會(huì)被回滾     */    public void setRedeliveryPolicy(RedeliveryPolicy redeliveryPolicy) {        this.redeliveryPolicyMap.setDefaultEntry(redeliveryPolicy);    }

activemq官網(wǎng)API

http://activemq.apache.org/maven/apidocs/org/apache/activemq/RedeliveryPolicy.html

如果自定義

        RedeliveryPolicy redeliveryPolicy= new RedeliveryPolicy();          //是否在每次嘗試重新發(fā)送失敗后,增長(zhǎng)這個(gè)等待時(shí)間          redeliveryPolicy.setUseExponentialBackOff(true);          //重發(fā)次數(shù),默認(rèn)為6次   這里設(shè)置為10次          redeliveryPolicy.setMaximumRedeliveries(10);          //重發(fā)時(shí)間間隔,默認(rèn)為1秒          redeliveryPolicy.setInitialRedeliveryDelay(1);          //第一次失敗后重新發(fā)送之前等待500毫秒,第二次失敗再等待500 * 2毫秒,這里的2就是value          redeliveryPolicy.setBackOffMultiplier(2);          //是否避免消息碰撞          redeliveryPolicy.setUseCollisionAvoidance(false);          //設(shè)置重發(fā)最大拖延時(shí)間-1 表示沒(méi)有拖延只有UseExponentialBackOff(true)為true時(shí)生效          redeliveryPolicy.setMaximumRedeliveryDelay(-1);

其他的方法可以看看源碼

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理

重試不是6次嗎?

public class RedeliveryPolicy extends DestinationMapEntry implements Cloneable, Serializable {
   public static final int NO_MAXIMUM_REDELIVERIES = -1;    public static final int DEFAULT_MAXIMUM_REDELIVERIES = 6;    默認(rèn)確實(shí)是6次
   private static Random randomNumberGenerator;
   // +/-15% for a 30% spread -cgs    protected double collisionAvoidanceFactor = 0.15d;    protected int maximumRedeliveries = DEFAULT_MAXIMUM_REDELIVERIES;    protected long maximumRedeliveryDelay = -1;    protected long initialRedeliveryDelay = 1000L;    protected boolean useCollisionAvoidance;    protected boolean useExponentialBackOff;    protected double backOffMultiplier = 5.0;    protected long redeliveryDelay = initialRedeliveryDelay;

這里有個(gè)類似Hashmap的負(fù)載因子的東西,有一個(gè)波動(dòng)范圍,但本地的是4次

protected double collisionAvoidanceFactor = 0.15d;

2.消費(fèi)到死信隊(duì)列存的什么東西?

吶,就存的這玩意

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理object是我們想要的

消費(fèi)內(nèi)容ActiveMQObjectMessage {    commandId = 5,    responseRequired = true,    messageId = ID: KK - 59648 - 1599635155556 - 1: 239: 1: 1: 1,     originalDestination = null, originalTransactionId = null,     producerId = ID: KK - 59648 - 1599635155556 - 1: 239: 1: 1,     destination = queue: //add,     transactionId = null, expiration = 0, timestamp = 1599636301936, arrival = 0,     brokerInTime = 1599636301937, brokerOutTime = 1599636302110,     correlationId = null, replyTo = null, persistent = true, type = null,     priority = 4, groupID = null, groupSequence = 0,    targetConsumerId = null, compressed = false, userID = null,     content = org.apache.activemq.util.ByteSequence@54eae153,     marshalledProperties = org.apache.activemq.util.ByteSequence@1318dd4d,    dataStructure = null, redeliveryCounter = 0, size = 0, properties = {timestamp=1599636300958},    readOnlyProperties = true, readOnlyBody = true, droppable = false,    jmsXGroupFirstForConsumer = false}

3.新問(wèn)題死信隊(duì)列里存的對(duì)象或消息是動(dòng)態(tài)的如何處理?

1.給業(yè)務(wù)指定一個(gè)死信隊(duì)列名稱,一對(duì)一的去消費(fèi)死信隊(duì)列,這樣就知道入隊(duì)和出隊(duì)的內(nèi)容了

2.入隊(duì)之前給隊(duì)列加一個(gè)屬性值type,使用枚舉判斷轉(zhuǎn)成什么類型,或者直接instance of,或者使用前綴/或綴什么的去轉(zhuǎn)。

然后在消費(fèi)時(shí)結(jié)合業(yè)務(wù)邏輯去處理就好了,如果轉(zhuǎn)對(duì)象成功,去查庫(kù),

如果查到數(shù)據(jù),判斷最后操作時(shí)間如果在庫(kù)里的時(shí)間后面則執(zhí)行此條數(shù)據(jù),如果在庫(kù)里時(shí)間之前則刪掉隊(duì)列的這條消息或者不處理

如果查不到數(shù)據(jù)則直接執(zhí)行本條數(shù)據(jù)。

話不多說(shuō),先來(lái)他10萬(wàn)次

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理

mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理

另外業(yè)務(wù)中遇到死信隊(duì)列的問(wèn)題了嗎?

沒(méi),只是在隊(duì)列群中多看了它一眼,發(fā)現(xiàn)死信隊(duì)列出現(xiàn)在我面前,就引發(fā)這么多問(wèn)題。

看完上述內(nèi)容,你們對(duì)mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理有進(jìn)一步的了解嗎?如果還想了解更多知識(shí)或者相關(guān)內(nèi)容,請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道,感謝大家的支持。

網(wǎng)頁(yè)題目:mq監(jiān)聽(tīng)死信隊(duì)列后是如何處理
標(biāo)題鏈接:http://jinyejixie.com/article18/jdoidp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供ChatGPT自適應(yīng)網(wǎng)站、關(guān)鍵詞優(yōu)化、網(wǎng)站營(yíng)銷做網(wǎng)站、品牌網(wǎng)站建設(shè)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)

綿陽(yáng)服務(wù)器托管
广南县| 弥渡县| 花莲县| 峨山| 霍城县| 光泽县| 开封市| 平远县| 绵竹市| 韶关市| 莒南县| 安龙县| 遂平县| 上饶县| 托克托县| 名山县| 固始县| 梨树县| 彰武县| 岳普湖县| 琼海市| 中卫市| 淮滨县| 紫阳县| 安义县| 雷州市| 融水| 东至县| 盐源县| 迁西县| 清水河县| 冷水江市| 曲松县| 永宁县| 台南市| 海安县| 桂林市| 云安县| 宜昌市| 东港市| 容城县|