首頁 php教程 PHP开发 ActiveMQ中Session設定的相關理解

ActiveMQ中Session設定的相關理解

Nov 22, 2016 pm 01:14 PM
activemq

參考部落格文章:http://www.cnblogs.com/SzeCheng/p/4792084.html

參考部落格文章:http://activemq.apache.org/producer-flow-control.html

名詞解釋:

P:生產者

C:消費者

服務端:P 或 ActiveMQ服務

客戶端:ActiveMQ服務 或 C

客戶端成功接收訊息的標誌是這則訊息被簽。成功接收一則訊息一般包含以下三個階段: 

1.客戶端接收訊息; 

2.客戶端處理訊息; 

3.訊息被簽收。

session = connection.createSession(Boolean.false, Session.CLIENT_ACKNOWLEDGE);##第一个参数控制事务,第二个参数控制消息
登入後複製

在不帶事務的 Session 中,一則訊息何時和如何被簽收取決於Session的設定。 

1. Session.AUTO_ACKNOWLEDGE 

當客戶端從 receive 或 onMessage成功返回時,Session 自動簽收客戶端的這條訊息的收條。

2. Session.CLIENT_ACKNOWLEDGE 

    客戶端透過呼叫訊息的 acknowledge 方法簽收訊息。

message.acknowledge();

在帶事務的 Session 中,簽收自動發生在事務提交時。如果交易回滾,所有已經接收的訊息將會再次傳送。其實這裡的Session.CLIENT_ACKNOWLEDGE 用處不大。

session = connection.createSession(Boolean.TRUE, Session.CLIENT_ACKNOWLEDGE);
登入後複製
session.commit();
登入後複製

總結:

1、對於生產者:服務端端為P,客戶端為ActiveMQ服務。  Session設定為AUTO_ACKNOWLEDGE 和CLIENT_ACKNOWLEDGE ,相對來說差異不是很大,視情況考慮。

2、對於消費者:服務端為ActiveMQ為服務,客戶端為C。 Session設定為AUTO_ACKNOWLEDGE ,接收到訊息(receive 或 onMessage成功返回時),即為消費成功,然後從佇列移除該資料。不關心該資料有沒有正確被處理成我們想要的結果;Session設定為CLIENT_ACKNOWLEDGE 時,必須手動呼叫acknowledge 方法才為消費成功,然後從佇列移除該資料。

3、P和C的Session設定成哪一種模式,互不影響。


本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

Java ActiveMQ 的 20 個最佳實踐 Java ActiveMQ 的 20 個最佳實踐 Feb 20, 2024 pm 09:48 PM

1.選擇合適的客戶端傳輸協定ActiveMQ支援多種客戶端傳輸協議,包括STOMP、AMQP和OpenWire。根據您的應用程式需求選擇合適的協議,以優化效能和可靠性。 2.配置訊息持久性持久性訊息即使在伺服器重新啟動後也能持久化,而非持久性訊息則不會。對於關鍵訊息,選擇持久性以確保可靠傳遞。示範程式碼://設定訊息持久性MessageProducerproducer=session.createProducer(destination);producer.setDeliveryMode(Deliv

Java ActiveMQ 的 20 個進階技巧 Java ActiveMQ 的 20 個進階技巧 Feb 20, 2024 pm 09:51 PM

1.訊息路由使用JMSSelectors過濾訊息:使用JMSSelectors根據訊息屬性對傳入訊息進行篩選,僅處理相關訊息。建立自訂訊息路由器:擴展ActiveMQ的路由功能,透過編寫自訂路由器將訊息傳送到特定目的地。配置輪詢負載平衡:將傳入訊息平均分佈到多個訊息消費者,提高處理能力。 2.持久性啟用持久性會話:確保即使應用程式或伺服器發生故障,訊息也能持久存儲,避免遺失。配置死信佇列(DLQ):將處理失敗的訊息移至DLQ,以便重新處理或分析。使用Journal儲存:提高持久性訊息的效能,減

Java ActiveMQ:輕鬆實現分散式系統的非同步通信 Java ActiveMQ:輕鬆實現分散式系統的非同步通信 Feb 19, 2024 pm 10:18 PM

ActiveMQ是Apache出品的開源訊息中間件,它使用Java語言開發,具有可靠的訊息傳遞、非同步通訊和叢集支援等特點。 ActiveMQ能夠在不同的應用之間進行資料交換,並且支援多種訊息協議,如JMS、AMQP和MQtT等。 1.ActiveMQ的優勢ActiveMQ是一款非常成熟的訊息中間件,它具有以下優勢:可靠的訊息傳遞:ActiveMQ能夠保證訊息的可靠傳遞,即使在網路故障或伺服器宕機的情況下,訊息也不會丟失。非同步通信:ActiveMQ支援非同步通信,允許不同的應用之間進行非即時的通信。

怎麼在SpringBoot中整合ActiveMQ 怎麼在SpringBoot中整合ActiveMQ May 11, 2023 pm 06:16 PM

目錄結構引入maven依賴org.springframework.bootspring-boot-starter-parent1.5.4.RELEASEUTF-8UTF-81.8org.springframework.bootspring-boot-starterorg.springframework.bootspring-boot-startootspring-boot-starterorg.springframework.bootspring-boot-startootspring-boot-starterorg.啟動器-testtestorg.springframework

Java ActiveMQ 的 20 個必知概念 Java ActiveMQ 的 20 個必知概念 Feb 21, 2024 am 08:40 AM

1.訊息代理(Broker)ActiveMQ核心元件,負責處理所有訊息流。它提供一個平台,應用程式可以連接、發送和接收訊息。 BrokerServicebroker=newBrokerService();broker.addConnector("tcp://0.0.0.0:61616");broker.start();2.訊息佇列在ActiveMQ中儲存訊息的邏輯概念容器。訊息隊列可以從多個生產者接收訊息,並將其傳遞給多個消費者。 Queuequeue=session.createQueue("my

Java JMS入門:輕鬆掌握訊息傳遞技術的基礎知識 Java JMS入門:輕鬆掌握訊息傳遞技術的基礎知識 Feb 26, 2024 am 10:34 AM

1.JavaJMS簡介JavaJMS是一個用來建立、傳送和接收訊息的Javaapi。它提供了可靠的訊息傳遞功能,非常適合分散式系統和企業級應用程式。訊息傳遞系統可以將訊息從一個應用程式發送到另一個應用程序,即使這兩個應用程式位於不同的機器上。 2.JMSAPIJMSAPI定義了一系列介面和類,用於發送和接收訊息。這些介面和類別包括:javax.jms.ConnectionFactory:用於建立連接到JMS伺服器的連線。 javax.jms.Connection:連接到JMS伺服器的連線。 javax.

Springboot中如何整合Activemq Springboot中如何整合Activemq May 21, 2023 pm 01:13 PM

1導入整合所需的依賴:org.springframework.bootspring-boot-starter-activemq2建立application.properties檔案spring.activemq.broker-url=tcp://127.0.0.1:61616spring.activemq.user=adminspring.activemq. password=adminserver.port=8080queue=myqueue3.自訂設定檔QueueConfig讀取設定檔

Java ActiveMQ:協助企業實現可靠、有效率的訊息傳輸 Java ActiveMQ:協助企業實現可靠、有效率的訊息傳輸 Feb 19, 2024 pm 10:12 PM

ActiveMQ是完全開源的Java訊息伺服器,也是Apache軟體基金會旗下最受歡迎的專案之一。它遵循Java訊息服務(JMS)規範,提供了一套用於建立分散式、非同步和以訊息為導向的應用程式的api。 ActiveMQ以其可靠性、高效性和靈活性而著稱,使其成為各種企業應用程式的理想選擇。可靠性:ActiveMQ使用持久化儲存機制來確保訊息的可靠傳遞。當訊息被傳送到ActiveMQ時,它將被寫入磁碟,即使伺服器發生故障,這些訊息也不會遺失。當伺服器重新啟動時,它會從持久化儲存中恢復這些訊息,並將其傳

See all articles