Springboot整合ActiveMQ實(shí)現(xiàn)消息隊(duì)列的過程淺析
確保你啟動(dòng)了自己電腦的activemq。
pom中導(dǎo)入坐標(biāo)
<dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency>
書寫yml配置
spring:
activemq:
broker-url: tcp://localhost:61616
jms:
template:
default-destination: my #消息隊(duì)列的默認(rèn)名字
pub-sub-domain: false #是否開啟消息訂閱模式
業(yè)務(wù)層代碼
@Service public class MessageServiceActive implements MessageService { @Autowired private JmsMessagingTemplate template; @Override public void getMessage(String id) { template.convertAndSend("AA",id); //自定義消息隊(duì)列名字 System.out.println("待發(fā)送短信的訂單已納入處理隊(duì)列,id:"+id); } @Override public String doMessage() { String id=template.receiveAndConvert("AA",String.class); return id; }
此時(shí),你書寫控制層代碼就可以實(shí)現(xiàn)消息隊(duì)列了,不過有一個(gè)缺陷,那就是處理消息的時(shí)候必須手動(dòng)書寫網(wǎng)址,調(diào)用執(zhí)行對(duì)應(yīng)的方法才可以,不過我們可以通過監(jiān)聽器來實(shí)現(xiàn)自動(dòng)化,就是一旦有消息產(chǎn)生就會(huì)立即處理。
監(jiān)聽器代碼
@Component public class MessageListener { @Autowired private JmsMessagingTemplate template; @JmsListener(destination = "AA") //要監(jiān)聽的消息隊(duì)列名稱 @SendTo(value = "BB") //自動(dòng)化處理完,還可以把該消息傳遞給下一了消息隊(duì)列 public String receive(){ String id=template.receiveAndConvert("AA",String.class); System.out.println("已完成短信發(fā)送業(yè)務(wù),id:"+id+"\n"); return "new_"+id; //利用返回值轉(zhuǎn)發(fā)給下一個(gè) } }
業(yè)務(wù)層代碼
@Service public class MessageServiceActive implements MessageService { @Autowired private JmsMessagingTemplate template; @Override public void getMessage(String id) { template.convertAndSend("AA",id); System.out.println("待發(fā)送短信的訂單已納入處理隊(duì)列,id:"+id); } }
這樣我們的消息就可以流水線似的處理了,這是點(diǎn)對(duì)點(diǎn)的消息隊(duì)列方式,還有訂閱式的。
到此這篇關(guān)于Springboot整合ActiveMQ實(shí)現(xiàn)消息隊(duì)列的過程淺析的文章就介紹到這了,更多相關(guān)Springboot整合ActiveMQ內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
- SpringBoot2實(shí)現(xiàn)MessageQueue消息隊(duì)列
- SpringBoot整合消息隊(duì)列RabbitMQ
- springboot整合消息隊(duì)列RabbitMQ
- springboot整合redis之消息隊(duì)列
- 詳解SpringBoot集成消息隊(duì)列的案例應(yīng)用
- SpringBoot整合RabbitMQ消息隊(duì)列的完整步驟
- SpringBoot集成Redis實(shí)現(xiàn)消息隊(duì)列的方法
- Springboot整合Active消息隊(duì)列
- SpringBoot集成消息隊(duì)列的項(xiàng)目實(shí)踐
相關(guān)文章
Java中notify()和notifyAll()的使用區(qū)別
本文主要介紹了Java中notify()和notifyAll()的使用區(qū)別,文中通過示例代碼介紹的非常詳細(xì),感興趣的小伙伴們可以參考一下2021-06-06RabbitMQ高級(jí)應(yīng)用之消費(fèi)端限流策略basicQos詳解
這篇文章主要介紹了RabbitMQ高級(jí)應(yīng)用之消費(fèi)端限流策略basicQos詳解,高并發(fā)情況下,隊(duì)列里面一瞬間就就積累了上萬條數(shù)據(jù),但是消費(fèi)者無法同時(shí)處理這么多請(qǐng)求,這種場(chǎng)景下我們就需要對(duì)消費(fèi)端進(jìn)行限流,需要的朋友可以參考下2023-08-08SpringBoot使用JavaCV處理rtsp流的示例代碼
這篇文章主要為大家詳細(xì)介紹了SpringBoot使用JavaCV處理rtsp流,文中的示例代碼講解詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴可以跟隨小編一起了解一下2024-02-02java、python、JavaScript以及jquery循環(huán)語句的區(qū)別
本篇文章主要介紹java、python、JavaScript以及jquery的循環(huán)語句的區(qū)別,這里整理了它們循環(huán)語句語法跟示例,以便大家閱讀,更好的區(qū)分它們的不同2016-07-07