摘要:介紹它是出品,最流行的,能力強勁的開源消息總線。是一個完全支持和規(guī)范的實現(xiàn),盡管規(guī)范出臺已經(jīng)是很久的事情了,但是在當(dāng)今的應(yīng)用中間仍然扮演著特殊的地位。相關(guān)文章整合使用整合使用關(guān)注我轉(zhuǎn)載請務(wù)必注明原創(chuàng)地址為安裝同之前一樣,直接在里面玩吧。
介紹 ActiveMQ
它是 Apache 出品,最流行的,能力強勁的開源消息總線。ActiveMQ 是一個完全支持 JMS1.1 和 J2EE 1.4 規(guī)范的 JMS Provider 實現(xiàn),盡管 JMS 規(guī)范出臺已經(jīng)是很久的事情了,但是 JMS 在當(dāng)今的J2EE應(yīng)用中間仍然扮演著特殊的地位?!?摘自百度百科,偷了個懶。
相關(guān)文章1、SpringBoot Kafka 整合使用
2、SpringBoot RabbitMQ 整合使用
關(guān)注我轉(zhuǎn)載請務(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
簡單解釋下:
8186: 表示 ActiveMQ 控制臺端口號,它和 RabbitMQ 一樣都是有控制臺的,可以登陸控制臺進行操作的
61616 : 表示 ActiveMQ 所監(jiān)聽的 TCP 端口號,應(yīng)用程序可通過該端口號與 ActiveMQ 建立 TCP 連接
CTIVEMQ_ADMIN_LOGIN :登陸控制臺的用戶名
ACTIVEMQ_ADMIN_PASSWORD :登陸控制臺的密碼
執(zhí)行后,可在瀏覽器輸入 http://localhost:8161/ 查看控制臺,
解釋下上面圖片中控制臺這些按鈕的基本信息:
Home:查看 ActiveMQ 的常見信息
Queues:查看 ActiveMQ 的隊列信息
Topics:查看 ActiveMQ 的主題信息
Subscribers:查看主題的訂閱者信息
Connections:查看 ActiveMQ 客戶端的連接信息
Network:查看 ActiveMQ 的網(wǎng)絡(luò)信息
Scheduled:查看 ActiveMQ 的定時任務(wù)
Send:用于通過表單方式向隊列或者主題發(fā)送具體的消息
整合IDEA 創(chuàng)建 SpringBoot 項目,因為 SpringBoot 已經(jīng)內(nèi)置了對 ActiveMQ 的支持,所以直接引入依賴 spring-boot-starter-activemq 就行。整體項目結(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ā)送消息類
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 類似,不多說了。
4、消息接收類
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、注意
這個隊列是不需要我們提前定義好的,它和 RabbitMQ 不一樣,它會在我們需要的時候動態(tài)的創(chuàng)建。
運行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ā)送消息耗時: " + stopWatch.getTotalTimeMillis()); } public static void main(String[] args) { SpringApplication.run(ActivemqApplication.class, args); } }
發(fā)送一萬條消息運行后需要的時間挺久的:73180 ms
比 RabbitMQ 發(fā)送 10000 條消息耗時 215 ms 不知道高出多少倍了,可見其性能并不高的。
文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請注明本文地址:http://www.ezyhdfw.cn/yun/68392.html
摘要:異步發(fā)送不會在受到的確認之前一直阻塞方法。方法成功返回意味著所有的持久消息都以被寫到二級存儲中??偨Y(jié)默認情況,非持久化消息事務(wù)內(nèi)的消息均采用異步發(fā)送對于持久化消息采用同步發(fā)送。 ActiveMq事務(wù) ActiveMq事務(wù)的作用就是在發(fā)送、接收處理消息過程中,如果出現(xiàn)問題,可以回滾。 ActiveMq異步/同步發(fā)送 以下摘抄自https://blog.csdn.net/songhai.....
摘要:前提通過前面兩篇文章可以簡單的了解和安裝,今天就將和整合起來使用。然后我運行之前的整合項目,查看監(jiān)控信息如下總結(jié)整篇文章講述了與整合和監(jiān)控平臺的搭建。 showImg(https://segmentfault.com/img/remote/1460000013232432?w=1920&h=1277); 前提 通過前面兩篇文章可以簡單的了解 RocketMQ 和 安裝 RocketMQ...
摘要:前提好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲抱歉了。熟悉我的人都知道我寫博客的時間比較早,而且堅持的時間也比較久,一直到現(xiàn)在也是一直保持著更新狀態(tài)。 showImg(https://segmentfault.com/img/remote/1460000014076586?w=1920&h=1080); 前提 好幾周沒更新博客了,對不斷支持我博客的童鞋們說聲:抱歉了!。自己這段時...
摘要:本文主要講述消息服務(wù)在中的使用。所以需要一個監(jiān)聽容器工廠的概念,即接口,它會引用上面創(chuàng)建好的與的連接工廠,由它來負責(zé)接收消息以及將消息分發(fā)給指定的監(jiān)聽器。為了消費消息,訂閱者必須保持運行的狀態(tài)。 JMS 在 SpringBoot 中的使用 摘要:本文屬于原創(chuàng),歡迎轉(zhuǎn)載,轉(zhuǎn)載請保留出處:https://github.com/jasonGeng88/blog> 本文所有服務(wù)均采用doc...
摘要:一在各種電商網(wǎng)站下訂單后會保留一個時間段,時間段內(nèi)未支付則自動將訂單狀態(tài)設(shè)置為已過期。并修改這些數(shù)據(jù)的狀態(tài)為已過期。因此以上方式實際開發(fā)中基本不予采用。時間到期了才會發(fā)送這條消息到消息隊列中。 一、在各種電商網(wǎng)站下訂單后會保留一個時間段,時間段內(nèi)未支付則自動將訂單狀態(tài)設(shè)置為已過期。(原文鏈接 ) showImg(https://segmentfault.com/img/bVbv9BX?...
閱讀 3120·2023-04-26 02:25
閱讀 2342·2023-04-25 18:05
閱讀 719·2021-09-30 09:57
閱讀 3020·2021-09-27 14:10
閱讀 1729·2019-08-30 15:44
閱讀 1074·2019-08-29 15:28
閱讀 2603·2019-08-29 14:10
閱讀 2348·2019-08-29 13:30