成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

ActiveMQ:設(shè)置多個(gè)并行的消費(fèi)者

import. / 1776人閱讀

摘要:消息隊(duì)列本來(lái)就是一種經(jīng)典的生產(chǎn)者與消費(fèi)者模式。為了最大效率的完成對(duì)消息隊(duì)列中的消息的消費(fèi),一般可以同時(shí)起多個(gè)一模一樣的消費(fèi)者,以并行的方式來(lái)拉取消息隊(duì)列中的消息。這樣的好處有多個(gè)加快處理消息隊(duì)列中的消息。

消息隊(duì)列本來(lái)就是一種經(jīng)典的生產(chǎn)者與消費(fèi)者模式。生產(chǎn)者向消息隊(duì)列中發(fā)送消息,消費(fèi)者從消息隊(duì)列中獲取消息來(lái)消費(fèi)。

消息的傳送一般由一個(gè)代理來(lái)實(shí)現(xiàn)的,那就是Message broker(即消息代理)。Message broker有兩大職責(zé),一是消息路由,二是數(shù)據(jù)轉(zhuǎn)換。這就好比A給B寄信,如果不使用郵局的話,就要自己想辦法送達(dá),費(fèi)時(shí)費(fèi)力,而通過(guò)郵局的話,只要B的地址在郵局中注冊(cè)過(guò),那么天涯海角也能送達(dá)。這里的郵局扮演的角色就像消息系統(tǒng)中的Message broker。

眾所周知,消息隊(duì)列是典型的’send and forget’原則的體現(xiàn),生產(chǎn)者只管發(fā)送,不管消息的后續(xù)處理。為了最大效率的完成對(duì)消息隊(duì)列中的消息的消費(fèi),一般可以同時(shí)起多個(gè)一模一樣的消費(fèi)者,以并行的方式來(lái)拉取消息隊(duì)列中的消息。這樣的好處有多個(gè):

1.加快處理消息隊(duì)列中的消息。
2.增強(qiáng)穩(wěn)定性,如果一個(gè)消費(fèi)者出現(xiàn)問(wèn)題,不會(huì)影響對(duì)消息隊(duì)列中消息的處理。

使用spring JMS來(lái)配置多個(gè)Listener實(shí)例,只需配置MessageListenerContainer就行。


    
    
    
    

多配置一個(gè)屬性concurrentConsumers,設(shè)置值為4,就是同時(shí)啟動(dòng)4個(gè)Listener實(shí)例來(lái)消費(fèi)消息。

使用MessageSender來(lái)發(fā)送100條消息,可以檢查消息處理的順序會(huì)發(fā)生變化。

for (int i = 0; i < 100; i++) {
    messageSender.send(String.format("message %d",i));
} 

運(yùn)行結(jié)果如下:

...
Received: message 4
Received: message 7
Received: message 6
Received: message 5
Received: message 8
Received: message 10
Received: message 9
…  

除了設(shè)置一個(gè)固定的Listener數(shù)量,也可以設(shè)置一個(gè)Listener區(qū)間,這樣MessageListenerContainer可以根據(jù)消息隊(duì)列中的消息規(guī)模自動(dòng)調(diào)整并行數(shù)量。


    
    
    
    
 
    

這次使用的是concurrency屬性,4-8表示最小并發(fā)數(shù)是4,最大并發(fā)數(shù)為8,當(dāng)然也可以給一個(gè)固定值,比如5,這樣就相當(dāng)于concurrentConsumers屬性了。

http://blog.csdn.net/super_sc...

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/70220.html

相關(guān)文章

  • 如何解決MQ消息消費(fèi)順序問(wèn)題

    摘要:利用的高級(jí)特性特性是一種負(fù)載均衡的機(jī)制。在一個(gè)消息被分發(fā)到之前,首先檢查消息屬性。屬性為某個(gè)值的消息單個(gè)消息或消息集合在描述,和的對(duì)應(yīng)關(guān)系,以及負(fù)載均衡策略時(shí)。同樣做到了保證消息的順序情況下,均衡消費(fèi)的消費(fèi)消息。 通常mq可以保證先到隊(duì)列的消息按照順序分發(fā)給消費(fèi)者消費(fèi)來(lái)保證順序,但是一個(gè)隊(duì)列有多個(gè)消費(fèi)者消費(fèi)的時(shí)候,那將失去這個(gè)保證,因?yàn)檫@些消息被多個(gè)線程并發(fā)的消費(fèi)。但是有的時(shí)候消息按照...

    Atom 評(píng)論0 收藏0
  • ActiveMQ 嵌入Tomcat

    摘要:嵌入在一些項(xiàng)目中,單獨(dú)開(kāi)啟一個(gè),對(duì)于項(xiàng)目實(shí)施來(lái)說(shuō)有時(shí)略顯繁瑣。待啟動(dòng)后,選擇所在的進(jìn)程。連接后選擇頁(yè)簽紅框的地方分別為已消費(fèi)和已進(jìn)入中的消息的條數(shù)。 ActiveMQ 嵌入Tomcat 在一些項(xiàng)目中,單獨(dú)開(kāi)啟一個(gè)ActiveMQ,對(duì)于項(xiàng)目實(shí)施來(lái)說(shuō)有時(shí)略顯繁瑣。所以我們將ActiveMQ內(nèi)嵌到Tomcat,Tomcat啟動(dòng)同時(shí)就順帶啟動(dòng)了ActiveMQ。由此我們需要掌握三個(gè)個(gè)重要的知識(shí)...

    curlyCheng 評(píng)論0 收藏0
  • 消息中間件及ActiveMQ介紹

    摘要:中間件的分類基于遠(yuǎn)程過(guò)程調(diào)用的中間件?;趯?duì)象請(qǐng)求代理的中間件。消息傳遞指的是程序之間通過(guò)在消息中發(fā)送數(shù)據(jù)進(jìn)行通信,而不是通過(guò)直接調(diào)用彼此來(lái)通信,直接調(diào)用通常是用于諸如遠(yuǎn)程過(guò)程調(diào)用的技術(shù)。 一.中間件 1.1 什么是中間件? 由于業(yè)務(wù)、機(jī)構(gòu)和技術(shù)是不斷變化的,因此為其服務(wù)的軟件系統(tǒng)必須適應(yīng)這樣的變化。在合并、添加服務(wù)或擴(kuò)展可用服務(wù)之后,公司可能無(wú)力負(fù)擔(dān)重新創(chuàng)建信息系統(tǒng)所需的成本。正是在...

    jaysun 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<