ActiveMQ中Session設置的相關理解


名詞解釋:

P:生產者

C:消費者

服務端:P 或者 ActiveMQ服務

客戶端:ActiveMQ服務 或者 C

 

客戶端成功接收一條消息的標志是這條消息被簽收。成功接收一條消息一般包括如下三個階段: 

1.客戶端接收消息; 
2.客戶端處理消息; 
3.消息被簽收。
 

在不帶事務的 Session 中,一條消息何時和如何被簽收取決於Session的設置。 

1.Session.AUTO_ACKNOWLEDGE 
當客戶端從 receive 或 onMessage成功返回時,Session 自動簽收客戶端的這條消息的收條。
 
 
2.Session.CLIENT_ACKNOWLEDGE 
    客戶端通過調用消息的 acknowledge 方法簽收消息。
 
 
在帶事務的 Session 中,簽收自動發生在事務提交時。如果事務回滾,所有已經接收的消息將會被再次傳送。
 

 
白話總結:
1、對於生產者:服務端端為P,客戶端為ActiveMQ服務。  Session設置為AUTO_ACKNOWLEDGE 和CLIENT_ACKNOWLEDGE ,相對來說區別不是很大,根據情況考慮。
 
2、對於消費者:服務端為ActiveMQ為服務,客戶端為C。 Session設置為AUTO_ACKNOWLEDGE ,接收到消息(receive 或 onMessage成功返回時),即為消費成功,然后從隊列里移除該數據。不關心該數據有沒有正確被處理成我們想要的結果;Session設置為CLIENT_ACKNOWLEDGE 時,必須手動調用acknowledge 方法才為消費成功,然后從隊列里移除該條數據。
 
3、P和C的Session設置成哪種模式,互不影響。
 
 
 
 
歡迎提意見


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM