摘要:介紹它是出品,最流行的,能力強(qiáng)勁的開(kāi)源消息總線。是一個(gè)完全支持和規(guī)范的實(shí)現(xiàn),盡管規(guī)范出臺(tái)已經(jīng)是很久的事情了,但是在當(dāng)今的應(yīng)用中間仍然扮演著特殊的地位。相關(guān)文章整合使用整合使用關(guān)注我轉(zhuǎn)載請(qǐng)務(wù)必注明原創(chuàng)地址為安裝同之前一樣,直接在里面玩吧。
介紹 ActiveMQ
它是 Apache 出品,最流行的,能力強(qiáng)勁的開(kāi)源消息總線。ActiveMQ 是一個(gè)完全支持 JMS1.1 和 J2EE 1.4 規(guī)范的 JMS Provider 實(shí)現(xiàn),盡管 JMS 規(guī)范出臺(tái)已經(jīng)是很久的事情了,但是 JMS 在當(dāng)今的J2EE應(yīng)用中間仍然扮演著特殊的地位。—— 摘自百度百科,偷了個(gè)懶。
相關(guān)文章1、SpringBoot Kafka 整合使用
2、SpringBoot RabbitMQ 整合使用
關(guān)注我轉(zhuǎn)載請(qǐng)務(wù)必注明原創(chuàng)地址為:http://www.54tianzhisheng.cn/2018/01/27/SpringBoot-ActiveMQ/
安裝 ActiveMQ同之前一樣,直接在 Docker 里面玩吧。命令也是一行解決:
docker run -d -p 8161:8161 -p 61616:61616 -e ACTIVEMQ_ADMIN_LOGIN=admin -e ACTIVEMQ_ADMIN_PASSWORD=admin --name activemq webcenter/activemq
簡(jiǎn)單解釋下:
8186: 表示 ActiveMQ 控制臺(tái)端口號(hào),它和 RabbitMQ 一樣都是有控制臺(tái)的,可以登陸控制臺(tái)進(jìn)行操作的
61616 : 表示 ActiveMQ 所監(jiān)聽(tīng)的 TCP 端口號(hào),應(yīng)用程序可通過(guò)該端口號(hào)與 ActiveMQ 建立 TCP 連接
CTIVEMQ_ADMIN_LOGIN :登陸控制臺(tái)的用戶(hù)名
ACTIVEMQ_ADMIN_PASSWORD :登陸控制臺(tái)的密碼
執(zhí)行后,可在瀏覽器輸入 http://localhost:8161/ 查看控制臺(tái),
解釋下上面圖片中控制臺(tái)這些按鈕的基本信息:
Home:查看 ActiveMQ 的常見(jiàn)信息
Queues:查看 ActiveMQ 的隊(duì)列信息
Topics:查看 ActiveMQ 的主題信息
Subscribers:查看主題的訂閱者信息
Connections:查看 ActiveMQ 客戶(hù)端的連接信息
Network:查看 ActiveMQ 的網(wǎng)絡(luò)信息
Scheduled:查看 ActiveMQ 的定時(shí)任務(wù)
Send:用于通過(guò)表單方式向隊(duì)列或者主題發(fā)送具體的消息
整合IDEA 創(chuàng)建 SpringBoot 項(xiàng)目,因?yàn)?SpringBoot 已經(jīng)內(nèi)置了對(duì) ActiveMQ 的支持,所以直接引入依賴(lài) spring-boot-starter-activemq 就行。整體項(xiàng)目結(jié)構(gòu)如下:
1、pom.xml 文件
4.0.0 com.zhisheng activemq 0.0.1-SNAPSHOT jar activemq Demo project for Spring Boot ActiveMQ org.springframework.boot spring-boot-starter-parent 1.5.9.RELEASE UTF-8 UTF-8 1.8 org.springframework.boot spring-boot-starter-web org.springframework.boot spring-boot-starter-test test org.springframework.boot spring-boot-starter-activemq org.springframework.boot spring-boot-maven-plugin
2、配置文件 application.properties
spring.activemq.broker-url=tcp://localhost:61616 spring.activemq.user=admin spring.activemq.password=admin
3、發(fā)送消息類(lèi)
package com.zhisheng.activemq.client; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.jms.core.JmsTemplate; import org.springframework.stereotype.Component; @Component public class ActiveMQClient { @Autowired private JmsTemplate jmsTemplate; public void send(String message) { jmsTemplate.convertAndSend("zhisheng", message); } }
同樣,和 RabbitMQ 類(lèi)似,不多說(shuō)了。
4、消息接收類(lèi)
package com.zhisheng.activemq.server; import org.springframework.jms.annotation.JmsListener; import org.springframework.stereotype.Component; @Component public class ActiveMQServer { @JmsListener(destination = "zhisheng") public void receive(String message) { System.out.println("收到的 message 是:" + message); } }
5、注意
這個(gè)隊(duì)列是不需要我們提前定義好的,它和 RabbitMQ 不一樣,它會(huì)在我們需要的時(shí)候動(dòng)態(tài)的創(chuàng)建。
運(yùn)行package com.zhisheng.activemq; import com.zhisheng.activemq.client.ActiveMQClient; import org.springframework.beans.factory.annotation.Autowired; import org.springframework.boot.SpringApplication; import org.springframework.boot.autoconfigure.SpringBootApplication; import org.springframework.util.StopWatch; import javax.annotation.PostConstruct; @SpringBootApplication public class ActivemqApplication { @Autowired ActiveMQClient client; @PostConstruct public void init() { StopWatch stopWatch = new StopWatch(); stopWatch.start(); for (int i = 0; i < 10000; i++) { client.send("發(fā)送消息----zhisheng-----"); } stopWatch.stop(); System.out.println("發(fā)送消息耗時(shí): " + stopWatch.getTotalTimeMillis()); } public static void main(String[] args) { SpringApplication.run(ActivemqApplication.class, args); } }
發(fā)送一萬(wàn)條消息運(yùn)行后需要的時(shí)間挺久的:73180 ms
比 RabbitMQ 發(fā)送 10000 條消息耗時(shí) 215 ms 不知道高出多少倍了,可見(jiàn)其性能并不高的。
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://systransis.cn/yun/68392.html
摘要:異步發(fā)送不會(huì)在受到的確認(rèn)之前一直阻塞方法。方法成功返回意味著所有的持久消息都以被寫(xiě)到二級(jí)存儲(chǔ)中??偨Y(jié)默認(rèn)情況,非持久化消息事務(wù)內(nèi)的消息均采用異步發(fā)送對(duì)于持久化消息采用同步發(fā)送。 ActiveMq事務(wù) ActiveMq事務(wù)的作用就是在發(fā)送、接收處理消息過(guò)程中,如果出現(xiàn)問(wèn)題,可以回滾。 ActiveMq異步/同步發(fā)送 以下摘抄自https://blog.csdn.net/songhai.....
摘要:前提通過(guò)前面兩篇文章可以簡(jiǎn)單的了解和安裝,今天就將和整合起來(lái)使用。然后我運(yùn)行之前的整合項(xiàng)目,查看監(jiān)控信息如下總結(jié)整篇文章講述了與整合和監(jiān)控平臺(tái)的搭建。 showImg(https://segmentfault.com/img/remote/1460000013232432?w=1920&h=1277); 前提 通過(guò)前面兩篇文章可以簡(jiǎn)單的了解 RocketMQ 和 安裝 RocketMQ...
摘要:前提好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲抱歉了。熟悉我的人都知道我寫(xiě)博客的時(shí)間比較早,而且堅(jiān)持的時(shí)間也比較久,一直到現(xiàn)在也是一直保持著更新?tīng)顟B(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒(méi)更新博客了,對(duì)不斷支持我博客的童鞋們說(shuō)聲:抱歉了!。自己這段時(shí)...
摘要:本文主要講述消息服務(wù)在中的使用。所以需要一個(gè)監(jiān)聽(tīng)容器工廠的概念,即接口,它會(huì)引用上面創(chuàng)建好的與的連接工廠,由它來(lái)負(fù)責(zé)接收消息以及將消息分發(fā)給指定的監(jiān)聽(tīng)器。為了消費(fèi)消息,訂閱者必須保持運(yùn)行的狀態(tài)。 JMS 在 SpringBoot 中的使用 摘要:本文屬于原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請(qǐng)保留出處:https://github.com/jasonGeng88/blog> 本文所有服務(wù)均采用doc...
摘要:一在各種電商網(wǎng)站下訂單后會(huì)保留一個(gè)時(shí)間段,時(shí)間段內(nèi)未支付則自動(dòng)將訂單狀態(tài)設(shè)置為已過(guò)期。并修改這些數(shù)據(jù)的狀態(tài)為已過(guò)期。因此以上方式實(shí)際開(kāi)發(fā)中基本不予采用。時(shí)間到期了才會(huì)發(fā)送這條消息到消息隊(duì)列中。 一、在各種電商網(wǎng)站下訂單后會(huì)保留一個(gè)時(shí)間段,時(shí)間段內(nèi)未支付則自動(dòng)將訂單狀態(tài)設(shè)置為已過(guò)期。(原文鏈接 ) showImg(https://segmentfault.com/img/bVbv9BX?...
閱讀 2997·2023-04-26 02:25
閱讀 2267·2023-04-25 18:05
閱讀 662·2021-09-30 09:57
閱讀 2955·2021-09-27 14:10
閱讀 1670·2019-08-30 15:44
閱讀 1016·2019-08-29 15:28
閱讀 2543·2019-08-29 14:10
閱讀 2272·2019-08-29 13:30