日韩av黄I国产麻豆传媒I国产91av视频在线观看I日韩一区二区三区在线看I美女国产在线I麻豆视频国产在线观看I成人黄色短片

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 >

ActiveMQ入门-ActiveMQ跟SpringBoot整合发送接收Topic

發布時間:2024/4/13 37 豆豆
生活随笔 收集整理的這篇文章主要介紹了 ActiveMQ入门-ActiveMQ跟SpringBoot整合发送接收Topic 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

默認情況下@JmsListener不能監聽topic,需要添加工廠類

package jms;import org.apache.activemq.command.ActiveMQQueue; import org.apache.activemq.command.ActiveMQTopic; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import org.springframework.jms.annotation.EnableJms; import org.springframework.jms.config.DefaultJmsListenerContainerFactory; import org.springframework.jms.config.JmsListenerContainerFactory;import javax.jms.ConnectionFactory;@Configuration @EnableJms //啟用jms功能 public class ActiveMqConfig {//如果要使用topic類型的消息,則需要配置該bean@Bean("jmsTopicListenerContainerFactory")public JmsListenerContainerFactory jmsTopicListenerContainerFactory(ConnectionFactory connectionFactory){DefaultJmsListenerContainerFactory factory= new DefaultJmsListenerContainerFactory();factory.setConnectionFactory(connectionFactory);factory.setPubSubDomain(true); //這里必須設置為true,false則表示是queue類型return factory;}} public void sendMessageTopic(ActiveMQTopic destination,String message) {jmsTemplate.convertAndSend(destination,"這是一個廣播"); } @JmsListener(destination = "mytest.topic",containerFactory = "jmsTopicListenerContainerFactory") public void receiveToic(String text){System.out.println(text); } @Test public void sendMessageTopic()throws Exception{ActiveMQTopic destination = new ActiveMQTopic("mytest.topic");producer.sendMessageTopic(destination,"你好,ActiveMQ"); }

剛才出現了一個問題,在topic消費后也返回了一個提示信息,但是報錯了

對于點對點消費者來說, 我可以給發送者回一條消息,告訴他我收到消息了,但是對于topic,發送者對接受者是否接受到消息不感興趣,所以在發送者如果回送消息的時候會報錯。

最后一個比較重要的知識點:對于queue來說,我們的消息發送出去,會一直保存在服務器上,等待消費者消費他,如果此時沒有消費者在線,會一直等待,會把消息做持久化處理,保存在硬盤上,如果消費者上線,消費者就能監聽到這條消息并進行消費。

對于topic來說,我一條消息發送出去,可能會有多個消費者去消費,如果這個時候消費者不在線,默認情況下,等消費者上線,他也無法收到這條消息,相當于這條消息丟失了。

也可以配置topic的持久化,保證消費者不在線的情況下,也能收到這條消息,那這跟queue的機制就類似了。

==特殊情況:如果消息發送失敗怎么辦?一直失敗怎么辦?==

==消息的重試機制,死信隊列==

總結

以上是生活随笔為你收集整理的ActiveMQ入门-ActiveMQ跟SpringBoot整合发送接收Topic的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。