JMS訊息集群

2021-05-22 12:23:10 字數 2207 閱讀 8957

jms集群的意義在於提公升系統在處理訊息時的併發能力,建立這樣的集群,有三個步驟:

1.配置jms訊息持久化所使用的資料庫

2.配置分布式的jndi環境

3.配置分布式jms集群

在jboss集群中,系統採用hibernate的方式來儲存訊息,所以能夠相容hibernate支援的所有資料庫。jboss預設採用 hsql,在我們的例子中,將使用oracle 9.2。首先需要配置連線到資料庫的jndi資料來源。方法是把doc/examples/jca下的 oracle-ds.xml檔案拷貝到server/all/farm下,並且修改其中的引數,保證資料庫能夠正確連線。jboss集群啟動後,該檔案能夠通過jboss的farm服務,自動拷貝到其他集群節點,並且自動部署。假設jndi資料來源的名稱為:globalds將 doc/examples/jms下的oracle-jdbc3-service.xml檔案拷貝到server/all/deploy- hasingleton/jms目錄下,並且刪除該目錄下的hsqldb-jdbc2-service.xml。修改oracle-jdbc3- service.xml,在56行左右指定name的值為資料來源的名字:globalds。這樣系統會使用該資料來源來儲存jms訊息。使用如下命令啟動 boss:    run ?c all.啟動完成後,正常情況下會發現oracle資料庫中多出了三張表:

1、jms_message_log        該錶用於儲存所有未處理的點對點訊息,表結構是:

messageid         訊息id

destination        目的地

txid            事務id

txop            訊息操作型別(a為新增,d為刪除)

messageblob        訊息內容

2、jms_reference_log    用於儲存所有未處理的topic訊息,表結構是:

messageid

destination

txid

txop

messageblob

redelivered        訊息是否被重發

3、jms_transaction_log    用於儲存處理訊息過程中的一些重要的事務

分布式的jndi有的節點有主次的區別,第乙個啟動的jboss是主伺服器,它會儲存所有的全域性 jndi,其他的節點如果收到客戶查詢jndi的請求後,都會向主伺服器請求資料。如果主伺服器不幸down掉,那麼次節點會發現這個變化,然後啟動自己的jndi環境,取代主伺服器提供服務。

下面是配置jms集群的jndi,開啟server/all/deploy-hasingleton/jms下的jbossmq-destinations-service.xml檔案,增加乙個名為test的destination,如下:

<

mbean

code

="org.jboss.mq.server.jmx.queue"

name

="jboss.mq.destination:service=queue,name=test"

>

<

depends

optional-attribute-name

="destinationmanager"

>

jboss.mq:service

=destinationmanager

depends

>

mbean

>

為了預防主伺服器down了之後丟失該jndi,所以最好在每個節點都進行這個配置。

public class testjmsbean   

implements messagedrivenbean, messagelistener   

public void ejbremove()   

public void onmessage(message msg) catch(exception e)  

}  

public void setmessagedrivencontext(messagedrivencontext

messagedrivencontext)   

jms訊息構成

jms訊息主要分為三個部分 color red 分別為頭部 headers color 頭部提供訊息的元資料 主要是對訊息的一些控制資訊 可以被客戶端和jms提供者來使用 控制資訊例如 b jmscorrelationid jmscorrelationidasbytes jmsdeliverymod...

JMS訊息服務分類

訊息服務的分類 jms提供了兩種型別的訊息服務 1 點對點訊息處理 point to point,ptp 2 發布 訂閱訊息服務 public subscribe pub sub 點對點訊息模型通過乙個訊息佇列實現,訊息的生產者向佇列寫入訊息,訊息的消費者從佇列中讀取訊息。發布 訂閱訊息模型把訊息傳...

jms 訊息儲存機制

conf activemq.xml配置檔案裡新增上如下配置 熟悉說明 property name default value comments directory activemq data 儲存訊息檔案和日誌的目錄 usenio true 使用 nio 特性 synconwrite false 同...