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