1. 程式人生 > >JMS訊息可靠機制

JMS訊息可靠機制

ActiveMQ訊息簽收機制:

客戶端成功接收一條訊息的標誌是一條訊息被簽收,成功應答。

訊息的簽收情形分兩種:

1、帶事務的session

   如果session帶有事務,並且事務成功提交,則訊息被自動簽收。如果事務回滾,則訊息會被再次傳送。

2、不帶事務的session

   不帶事務的session的簽收方式,取決於session的配置。

   Activemq支援一下三種模式:

   Session.AUTO_ACKNOWLEDGE  訊息自動簽收

   Session.CLIENT_ACKNOWLEDGE  客戶端呼叫acknowledge方法手動簽收

textMessage.acknowledge();//手動簽收

   Session.DUPS_OK_ACKNOWLEDGE 不是必須簽收,訊息可能會重複傳送。在第二次重新傳送訊息的時候,訊息

只有在被確認之後,才認為已經被成功地消費了。訊息的成功消費通常包含三個階段:客戶接收訊息、客戶處理訊息和訊息被確認。 在事務性會話中,當一個事務被提交的時候,確認自動發生。在非事務性會話中,訊息何時被確認取決於建立會話時的應答模式(acknowledgement mode)。該引數有以下三個可選值:

 

Number Of Consumers  消費者 這個是消費者端的消費者數量 

Number Of Pending Messages 等待消費的訊息 這個是當前未出佇列的數量。可以理解為總接收數-總出佇列數 
Messages Enqueued 進入佇列的訊息  進入佇列的總數量,包括出佇列的。 這個數量只增不減 
Messages Dequeued 出了佇列的訊息  可以理解為是消費這消費掉的數量