activemq高并發(fā)處理方案

activemq高并發(fā)處理方案

ID:6753811

大小:41.12 KB

頁數(shù):7頁

時(shí)間:2018-01-24

activemq高并發(fā)處理方案_第1頁
activemq高并發(fā)處理方案_第2頁
activemq高并發(fā)處理方案_第3頁
activemq高并發(fā)處理方案_第4頁
activemq高并發(fā)處理方案_第5頁
資源描述:

《activemq高并發(fā)處理方案》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。

1、高并發(fā)發(fā)送消息異常解決方法:現(xiàn)象:使用10個(gè)線程每100ms發(fā)送一條消息,大約3000多條后,出現(xiàn)異常,所有線程停止:?javax.jms.JMSException:CouldnotconnecttobrokerURL:tcp://localhost:61616.Reason:java.net.BindException:Addressalreadyinuse:connect;nestedexceptionisjava.net.BindException:Addressalreadyinuse:connect原因:創(chuàng)建了太多j

2、ms連接沒有來得及回收解決方法:使用jms連接池原來的配置:org.apache.activemq.jndi.ActiveMQInitialContextFactorytcp://huzq-linux:61616

3、n>ConnectionFactory修改為:

4、operty>解決activemq多消費(fèi)者并發(fā)處理遇到一個(gè)現(xiàn)象,如果activemq隊(duì)列積壓了數(shù)據(jù)的話,如果在spring中啟動(dòng)listner,只有一個(gè)consumer執(zhí)行,查閱了很多資料,無果,后來偶爾通過activemq的監(jiān)控網(wǎng)頁看到消費(fèi)者列表中,只有一個(gè)消費(fèi)者有等待處理的數(shù)據(jù),其他都沒有,如下圖:由此得知,activemq有一定機(jī)制將隊(duì)列中的數(shù)據(jù)交給consumer處理,這個(gè)機(jī)制就是數(shù)據(jù)的數(shù)量分配,查資料得知,默認(rèn)是1000,因此,把這個(gè)值調(diào)小就可以了。在客戶端的連接url中,修改為tcp://ipaddr

5、:61616?jms.prefetchPolicy.all=2這樣基本消費(fèi)者就分配公平了,不會(huì)出現(xiàn)一個(gè)消費(fèi)者忙死,另外的消費(fèi)者閑死了。為高并發(fā)程序部署ActiveMQ使用ActiveMQ來擴(kuò)展你的應(yīng)用程序需要一些時(shí)間并要花一些精力.本節(jié)中我們將介紹三種技術(shù)用于擴(kuò)展應(yīng)用程序.我們將從垂直擴(kuò)展開始,這種擴(kuò)展方式中,單個(gè)代理需要處理成千上萬的連接和消息隊(duì)列.接下來我們將介紹水平擴(kuò)展,這種擴(kuò)展方式需要處理比前一種方式更多的網(wǎng)絡(luò)連接.最后,我們介紹的傳輸負(fù)載分流,可以在擴(kuò)展和性能間得到平衡,但是會(huì)增加ActiveMQ程序的復(fù)雜性.1.垂

6、直擴(kuò)展:垂直擴(kuò)展是一種用于增加單個(gè)ActiveMQ代理連接數(shù)(因而也增加了負(fù)載能力)的技術(shù).默認(rèn)情況下,ActiveMQ的被設(shè)計(jì)成盡可高效的傳輸消息以確保低延遲和良好的性能.但是,你也可以進(jìn)行一些配置使的ActiveMQ代理可以同時(shí)處理大量并發(fā)的連接以及大量的消息隊(duì)列.默認(rèn)情況下,ActiveMQ使用阻塞IO來處理傳輸連接,這種方式為每一個(gè)連接分配一個(gè)線程.你可以為ActiveMQ代理使用非阻塞IO(同時(shí)客戶端可以使用默認(rèn)的傳輸)以減少線程的使用.可以在ActiveMQ的配置文件中通過傳輸連接器配置非阻塞IO.下面的是配置非阻

7、塞IO的示例代碼:配置NIO傳輸連接器除了為每個(gè)連接使用一個(gè)線程的阻塞IO,ActiveMQ還可以為每一個(gè)客戶端連接使用一個(gè)消息分發(fā)線程.你可以通過將系統(tǒng)參數(shù)org.apache.activemq.UseDedicatedTaskRunner設(shè)置為false來設(shè)置ActiveMQ使用一個(gè)搞線程

8、池.下面是一個(gè)示例:ACTIVEMQ_OPTS="-Dorg.apache.activemq.UseDedicatedTaskRunner=false"確保ActiveMQ代理用于足夠的內(nèi)存來處理大量的并發(fā)連接,需要分兩步進(jìn)行:首先,你需要確保運(yùn)行ActiveMQ的JVM在啟

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文

此文檔下載收益歸作者所有

當(dāng)前文檔最多預(yù)覽五頁,下載文檔查看全文
溫馨提示:
1. 部分包含數(shù)學(xué)公式或PPT動(dòng)畫的文件,查看預(yù)覽時(shí)可能會(huì)顯示錯(cuò)亂或異常,文件下載后無此問題,請(qǐng)放心下載。
2. 本文檔由用戶上傳,版權(quán)歸屬用戶,天天文庫負(fù)責(zé)整理代發(fā)布。如果您對(duì)本文檔版權(quán)有爭(zhēng)議請(qǐng)及時(shí)聯(lián)系客服。
3. 下載前請(qǐng)仔細(xì)閱讀文檔內(nèi)容,確認(rèn)文檔內(nèi)容符合您的需求后進(jìn)行下載,若出現(xiàn)內(nèi)容與標(biāo)題不符可向本站投訴處理。
4. 下載文檔時(shí)可能由于網(wǎng)絡(luò)波動(dòng)等原因無法下載或下載錯(cuò)誤,付費(fèi)完成后未能成功下載的用戶請(qǐng)聯(lián)系客服處理。