ActiveMQ 監聽和確認

2021-09-20 21:47:04 字數 1268 閱讀 7243

public

class

producer

producer.

close()

; connection.

close()

;}}

值得注意的是session.client_acknowledge,需要consumer進行返回確認才會進行刪除。

一般來說,如果只是簡單的佇列,pop之後,資料就和佇列無關了。

如果消費端服務異常,那麼,已經取出的資料將得不到正確的處理,並且直接丟失,無法再找到。

商業應用中,為了防止資料丟失,應當由消費端消費完成再進行移除,避免資料丟失

public

class

consumer

catch

(jm***ception e)}}

);}}

consumer.

setmessagelistener

(new

messagelistener()

catch

(jm***ception e)}}

);

採用***,就不必消耗資源去阻塞等待,而且單條的receive了。

當佇列存在且未被消費的訊息時,就會自動觸發onmessage方法進行處理。

同時,乙個consumer可以設定多個listener,也就是說,乙個訊息可以進行多步處理。

但是避免混淆的是,乙個訊息只能被乙個consumer處理一次,除非處理完畢之前掛掉,沒有確認刪除。

message.

acknowledge()

;

當訊息處理完畢之後,應該返回乙個確認指令,通知mq移除該訊息。

注意模式需要設定為session.client_acknowledge

當同乙個destination存在多個consumer的時候,預設是輪詢進行訊息的獲取。

也就是說,當前例子,如果consumer啟動兩個例項,一邊輸出奇數,一邊輸出偶數。

ActiveMQ 訊息確認

一 事務性會話 當乙個事務被提交的時候,確認自動發生 connectionfactory connectionfactory new activemqconnectionfactory tcp connection connection connectionfactory.createconnect...

activemq和zookeeper集群環境部署

activemq和 zookeeper集群環境部署 集群 對應三個環境分別都要部署zookeeper和mq 1.zookeeper的安裝部署 注意,其中倆個 zookeeper 安裝在同乙個 linux 中 1 解壓 tar zxvf zookeeper 3.4.6.tar.gz 2 將 conf ...

Activemq優點和缺點

activemq有自己的特點和優勢 1 activemq可以很好的執行在任何jvm上,而不只是整合到jboss的應用伺服器中 2 activemq支援大量的跨語言客戶端 3 activemq支援許多不同的協議,如ajax,rest,stomp,openwire,xmpp 4 activemq支援許多...