解析ActiveMQ的使用說明總結(jié)
更新時(shí)間:2013年05月16日 15:00:24 作者:
本篇文章是對(duì)ActiveMQ的使用進(jìn)行了詳細(xì)的分析介紹,需要的朋友參考下
本文只針對(duì)ActiveMQ常見的一些問題進(jìn)行介紹。關(guān)于如下下載、編譯、部署、使用等基本應(yīng)用不在本文范圍內(nèi)。
1、ActiveMQ支持消息過濾設(shè)置規(guī)則和用法
selector支持下列幾種方式:
(1) String literals: "color ='blue'"
(2) Byte strings: “myBytes <> "0X0AFC23"”
(3) Numeric values: "NoltemsInStock > 20"
(4) Boolean literals TRUE or FALSE: "AcctDetails=TRUE"
(5) Composite expressions: "Type='car' AND (color = 'blue' OR color ='green') AND weight> 2500"
使用方式:
(1)創(chuàng)建生產(chǎn)者在send函數(shù)之前添加過濾屬性:
(2)在創(chuàng)建消費(fèi)者createConsumer時(shí)進(jìn)行如下設(shè)置:
2、錯(cuò)誤:Channel was inactive for too long (服務(wù)器消息較長(zhǎng)時(shí)間沒有消息發(fā)送時(shí),客戶端會(huì)報(bào)這個(gè)錯(cuò)誤)
解決方法:在建立連接的Uri中加入: wireFormat.maxInactivityDuration=0
3、采用failover方式連接導(dǎo)致卡死
解決方法:不采用failover連接
4、ActiveMQ發(fā)送模式
(1)ActiveMQ異步發(fā)送,只需新增參數(shù)transport.useAsyncSend=true,具體如下:
(2)ActiveMQ同步發(fā)送,只需新增參數(shù)transport.useAsyncSend=false,具體如下:
5、錯(cuò)誤:The Session is closed(網(wǎng)絡(luò)異常時(shí)客戶端會(huì)報(bào)出這個(gè)錯(cuò)誤)
解決辦法:在建立連接的Uri中加入: maxReconnectDelay=10000
maxReconnectDelay 最大重連間隔
6、ActiveMQ負(fù)責(zé)均衡
對(duì)broker采取了負(fù)載均衡和基于共享文件系統(tǒng)的主備配置,這個(gè)時(shí)候,客戶端生產(chǎn)者和消費(fèi)者的URI中用
failover:(tcp://192.168.1.117:61616,tcp://192.168.1.118:61616,tcp://broker3:61616)
6、ActiveMQ的ACK設(shè)置
根據(jù)不同的需要可以將ACK設(shè)置為Session::CLIENT_ACKNOWLEDGE 或 Session::AUTO_ACKNOWLEDGE 默認(rèn)為Session::AUTO_ACKNOWLEDGE 如:
if( clientAck )
{
session = connection->createSession( Session::CLIENT_ACKNOWLEDGE);
}
else
{
session = connection->createSession( Session::AUTO_ACKNOWLEDGE);
}
7、ActiveMQ的Topic設(shè)置
根據(jù)不同的需要可以將Topic設(shè)置為Topic或 Queue默認(rèn)為Queue 如:
if(useTopic)
{
}
else
{
}
8、ActiveMQ的DeliveryMode設(shè)置(生產(chǎn)者時(shí)設(shè)置)
根據(jù)不同的需要可以將DeliveryMode設(shè)置為DeliveryMode::NON_PERSISTENT或 DeliveryMode::PERSISTENT默認(rèn)為DeliveryMode::NON_PERSISTENT 如:
if(usePersistent)
producer->setDeliveryMode( DeliveryMode::PERSISTENT);
producer->setDeliveryMode( DeliveryMode::NON_PERSISTENT);
{
}
else
{
}
相關(guān)文章
C++實(shí)現(xiàn)LeetCode(116.每個(gè)節(jié)點(diǎn)的右向指針)
這篇文章主要介紹了C++實(shí)現(xiàn)LeetCode(116.每個(gè)節(jié)點(diǎn)的右向指針),本篇文章通過簡(jiǎn)要的案例,講解了該項(xiàng)技術(shù)的了解與使用,以下就是詳細(xì)內(nèi)容,需要的朋友可以參考下2021-07-07