JMS介紹:JMS即Java消息服務(Java Message Service)應用程序接口,是一個Java平臺中關於面向消息中間件(MOM)的API,用於在兩個應用程序之間,或分佈式系統中發送消息,進行異步通訊。(百度 )
本文只測試ActiveMQ,其餘消息中間件應該同理.html
JMS常見2種消息模型:java
3 . 虛擬Topics
爲何說2種消息模型,這裏會有第三種,由於Topics隊列的性質決定,當我要發消息給不少訂閱,可是若是訂閱監聽服務掛掉,就不能收到這個消息,致使消息未發佈到這個訂閱,因此引伸出第三個消息模型,虛擬Topics.
廣播出1條消息給ActiveMQ Topics隊列,ActiveMQ會自動轉換給要分發消息的訂閱 Queues 隊列.而後訂閱監聽Queues隊列去取走消息.這2種消息模型的結合,產生出第三種消息模型,虛擬Topics.apache
以ActiveMQ爲例子,使用jmeter測試JMS.異步
jndi.properties
添加到ApacheJMeter.jar
中jndi.properties
到jmeter/bin目錄下java.naming.factory.initial = org.apache.activemq.jndi.ActiveMQInitialContextFactory java.naming.provider.url = tcp://IP:61616 connectionFactoryNames = connectionFactory queue.T_MDM_Q = Queue.T_MDM queue.T_IPS_Q= Queue.T_IPS topic.T_MDM_T= VirtualTopic.T_MDM topic.T_IPS_T= VirtualTopic.T_IPS
java.naming.factory.initial:ActiveMQ jar包中 init 所需的 類名
java.naming.provider.url:ActiveMQ的地址
connectionFactoryNames:連接工廠名稱
queue.T_MDM_Q:隊列名稱
queue:說明是queue隊列
T_MDM_Q:自定義字段,在後面用來指向隊列名稱
同理topic.T_MDM_T
tcp
ApacheJMeter.jar
中 在jmeter/bin目錄下運行 jar uf ApacheJMeter.jar jndi.properties
把ActiveMQ下 activemq-all-x.x.x.jar
放到Jmeter/lib下分佈式
右鍵》添加》sampler》JMS point-to-point 添加一個隊列的界面
ide
QueueConnection Factory:jndi.properties
中connectionFactoryNames 字段
JNDI Name Request queue:生產者向哪一個隊列插入消息,jndi.properties
中對應待測隊列名稱的queue.xxxxx
JNDI Name Reply queue:消費者從哪一個隊列取消息,jndi.properties
中對應待測隊列名稱的queue.xxxxx
Content:消息內容
InitialContextFactory:org.apache.activemq.jndi.ActiveMQInitialContextFactory
Provider URL:ActiveMQ地址測試
右鍵》添加》sampler》JMS Publisher 添加一個Publisher界面
ui
InitialContextFactory:org.apache.activemq.jndi.ActiveMQInitialContextFactory
Provider URL:ActiveMQ地址
QueueConnection Factory:jndi.properties
中connectionFactoryNames 字段
Destination:發佈往隊列的名稱,jndi.properties
中對應Topic隊列名稱的topic.xxxx
Text Massage:發佈的消息url
右鍵》添加》sampler》JMS Subscriber添加一個Publisher界面
上面只介紹了ActiveMQ的配置方法,由於我也只調了ActiveMQ,其餘JMS中間件沒有試過,若是大家項目中須要,能夠試一下.Jmeter測試JMS中涉及的其餘參數設置,可能會用到的,查看Jmeter說明http://jmeter.apache.org/usermanual/build-jms-point-to-point-test-plan.html