(六) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送和獲取 Topic 型別訊息
阿新 • • 發佈:2018-11-07
文章目錄
前言
本篇文章的內容會非常之少,因為 Topic 型別的資料的傳送和接收本身在程式碼上並沒有太大的差別,唯一的差別在於宣告 JmsTemplate 時注入的是 ActiveMQQueue 還是 ActiveMQTopic,所以本文僅就這部分差別進行闡述,並且強調一下 Topic 型別資料的特性。
回顧 Queue 型別訊息的傳送和請求過程
(四) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 傳送 Queue 型別訊息
(五) 訊息中介軟體——使用 JmsTemplate 向 ActiveMQ 獲取 Queue 型別訊息
ActiveMQTopic 和 JmsTemplate
回顧 ActiveMQTopic Bean 的宣告
//測試topic
@Bean(name="activeMQTopic")
public ActiveMQTopic getActiveMQTopic(){
ActiveMQTopic a= new ActiveMQTopic("topic_test");//構造方法同時確定來佇列訊息的名字
return a;
}
回顧 JmsTemplate Bean 的宣告
@Resource(name="activeMQConnectionFactory")
private ActiveMQConnectionFactory connectionFactory;
//通過名字指定注入的物件
@Resource(name="activeMQTopic")
private ActiveMQTopic activeMQTopic;
@Bean(name="JmsTemplateTopic" )
public JmsTemplate getJmsTemplateTopic(){
JmsTemplate j=new JmsTemplate();
j.setConnectionFactory(connectionFactory);//連線工廠
j.setDefaultDestination(activeMQTopic);//目標訊息
return j;
}
Topic 型別訊息的特性
你可以同時宣告多個 JmsTemplate Bean 來驗證下面的特性
1、消費者請求 Topic 型別的訊息,如果沒有則消費者等待
2、Topic 型別的訊息到達ActiveMQ,如果有等待的消費者,則立即將訊息推送給消費者,否則這個訊息會被丟棄而不會被 ActiveMQ 儲存
3、Topic 型別的訊息可以被多個消費者消費