日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区

您的位置:首頁技術文章
文章詳情頁

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

瀏覽:37日期:2023-05-24 10:36:56

寫在前面: 從2018年底開始學習SpringBoot,也用SpringBoot寫過一些項目。這里對學習Springboot的一些知識總結記錄一下。如果你也在學習SpringBoot,可以關注我,一起學習,一起進步。

ActiveMQ簡介

1、ActiveMQ簡介

Apache ActiveMQ是Apache軟件基金會所研發的開放源代碼消息中間件;由于ActiveMQ是一個純Java程序,因此只需要操作系統支持Java虛擬機,ActiveMQ便可執行。

2、ActiveMQ下載

下載地址:http://activemq.apache.org/components/classic/download/

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

下載完成后解壓雙擊activemq.bat文件打開(不用安裝,直接使用),目錄和打開后效果如下:

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

運行后,瀏覽器訪問http://localhost:8161/地址進入一下界面。

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

點擊Manage ActiveMQ broker登錄到ActiveMQ管理頁面,默認賬號和密碼都是admin。管理頁面如下:

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

SpringBoot整合ActiveMQ

1、新建SpringBoot項目

新建Springboot項目,添加對應的依賴。項目完整的pom.xml文件如下:

<?xml version='1.0' encoding='UTF-8'?><project xmlns='http://maven.apache.org/POM/4.0.0' xmlns:xsi='http://www.w3.org/2001/XMLSchema-instance' xsi:schemaLocation='http://maven.apache.org/POM/4.0.0 https://maven.apache.org/xsd/maven-4.0.0.xsd'> <modelVersion>4.0.0</modelVersion> <parent> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-parent</artifactId> <version>2.2.5.RELEASE</version> <relativePath/> <!-- lookup parent from repository --> </parent> <groupId>com.mcy</groupId> <artifactId>springboot-mq</artifactId> <version>0.0.1-SNAPSHOT</version> <name>springboot-mq</name> <description>Demo project for Spring Boot</description> <properties> <java.version>1.8</java.version> </properties> <dependencies> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-web</artifactId> </dependency> <!--Activemq依賴--> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-activemq</artifactId> </dependency> <dependency> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-starter-test</artifactId> <scope>test</scope> <exclusions> <exclusion> <groupId>org.junit.vintage</groupId> <artifactId>junit-vintage-engine</artifactId> </exclusion> </exclusions> </dependency> </dependencies> <build> <plugins> <plugin> <groupId>org.springframework.boot</groupId> <artifactId>spring-boot-maven-plugin</artifactId> </plugin> </plugins> </build></project>

2、項目結構

3、相關配置信息

在application.properties類中添加ActiveMQ相關的配置信息

server.port=8080server.servlet.context-path=/mq#MQ服務器地址spring.activemq.broker-url=tcp://localhost:61616#用戶名spring.activemq.user=admin#密碼spring.activemq.password=admin#設置是Queue隊列還是Topic,false為Queue,true為Topic,默認false-Queuespring.jms.pub-sub-domain=false#spring.jms.pub-sub-domain=true#變量,定義隊列和topic的名稱myqueue: activemq-queuemytopic: activemq-topic

4、ActiveMQ配置類

ActiveMQ配置類ConfigBean,配置了Queue隊列和topic兩種模式,代碼如下:

import org.apache.activemq.command.ActiveMQQueue;import org.apache.activemq.command.ActiveMQTopic;import org.springframework.beans.factory.annotation.Value;import org.springframework.context.annotation.Bean;import org.springframework.jms.annotation.EnableJms;import org.springframework.stereotype.Component;import javax.jms.Topic;/** 1. MQ配置類 */@Component@EnableJmspublic class ConfigBean { @Value('${myqueue}') private String myQueue; @Value('${mytopic}') private String topicName; //隊列 @Bean public ActiveMQQueue queue(){ return new ActiveMQQueue(myQueue); } //topic @Bean public Topic topic(){ return new ActiveMQTopic(topicName); }}Queue隊列模式

隊列模式即點對點傳輸。點對點消息傳遞域的特點如下:

每個消息只能有一個消費者,類似于1對1的關系。好比個人快遞自己領自己的。

消息的生產者和消費者之間沒有時間上的相關性。無論消費者在生產者發送消息的時候是否處于運行狀態,消費者都可以提取消息。好比我們的發送短信,發送者發送后不見得接收者會即收即看。

消息被消費后隊列中不會再存儲,所以消費者不會消費到已經被消費掉的消息。

1、隊列生產者

QueueProducerController類為隊列生產者控制器,主要向消息隊列中發送消息。代碼如下:

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.jms.Queue;/* * 隊列消息生產者 */@RestControllerpublic class QueueProducerController { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Queue queue; /* * 消息生產者 */ @RequestMapping('/sendmsg') public void sendmsg(String msg) { System.out.println('發送消息到隊列:' + msg); // 指定消息發送的目的地及內容 this.jmsMessagingTemplate.convertAndSend(this.queue, msg); }}

2、隊列消費者

QueueConsumerController類為隊列消費者控制器,具體代碼如下:

import org.springframework.beans.factory.annotation.Value;import org.springframework.jms.annotation.JmsListener;import org.springframework.web.bind.annotation.RestController;/* 1. 隊列queue消費者控制器 */@RestControllerpublic class QueueConsumerController { /* * 消費者接收消息 */ @JmsListener(destination='${myqueue}') public void readActiveQueue(String message) { System.out.println('接受到:' + message); }}

3、測試效果

運行項目在瀏覽器中訪問http://localhost:8080/mq/sendmsg?msg=123。向消息隊列中發送123??刂婆_輸出效果:

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

ActiveMQ控制臺顯示:

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

Number Of Pending Messages:消息隊列中待處理的消息 Number Of Consumers:消費者的數量 Messages Enqueued:累計進入過消息隊列的總量 Messages Dequeued:累計消費過的消息總量

【注】隊列模式時,配置文件application.properties中spring.jms.pub-sub-domain屬性必須設置為false。

Topic模式

topic模式基于發布/訂閱模式的傳輸?;诎l布/訂閱模式的傳輸的特點如下:

生產者將消息發布到topic中,每個消息可以有多個消費者,屬于1:N的關系; 生產者和消費者之間有時間上的相關性。訂閱某一個主題的消費者只能消費自它訂閱之后發布的消息。 生產者生產時,topic不保存消息它是無狀態的不落地,假如無人訂閱就去生產,那就是一條廢消息。

1、topic生產者

TopicProducerController類為topic生產者控制器,主要向消息隊列中發送消息。代碼如下:

import org.springframework.beans.factory.annotation.Autowired;import org.springframework.jms.core.JmsMessagingTemplate;import org.springframework.web.bind.annotation.RequestMapping;import org.springframework.web.bind.annotation.RestController;import javax.jms.Queue;import javax.jms.Topic;/** topic消息生產者*/@RestControllerpublic class TopicProducerController { @Autowired private JmsMessagingTemplate jmsMessagingTemplate; @Autowired private Topic topic; /* * 消息生產者 */ @RequestMapping('/topicsendmsg') public void sendmsg(String msg) { System.out.println('發送消息到MQ:' + msg); // 指定消息發送的目的地及內容 this.jmsMessagingTemplate.convertAndSend(this.topic, msg); }}

2、topic消費者

TopicConsumerController類為topic消費者控制器,其中寫了兩個消費者方法,可以理解為有兩個用戶訂閱。具體代碼如下:

import org.springframework.jms.annotation.JmsListener;import org.springframework.web.bind.annotation.RestController;/* 1. topic消費者控制器 */@RestControllerpublic class TopicConsumerController { /* * 消費者接收消息 */ @JmsListener(destination='${mytopic}') public void readActiveQueue(String message) { System.out.println('接受到:' + message); } @JmsListener(destination='${mytopic}') public void readActiveQueue1(String message) { System.out.println('接受到:' + message); }}

3、測試效果

運行項目在瀏覽器中訪問http://localhost:8080/mq/topicsendmsg?msg=123。向消息隊列中發送123??刂婆_輸出效果(有兩個消費者方法):

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

ActiveMQ控制臺顯示:

詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)

Number Of Consumers:消費者的數量 Messages Enqueued:累計進入過消息隊列的總量 Messages Dequeued:累計消費過的消息總量

【注】Topic模式時,配置文件application.properties中spring.jms.pub-sub-domain屬性必須設置為true。

到此這篇關于詳解Springboot整合ActiveMQ(Queue和Topic兩種模式)的文章就介紹到這了,更多相關Springboot整合ActiveMQ內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: Spring
相關文章:
日本不卡不码高清免费观看,久久国产精品久久w女人spa,黄色aa久久,三上悠亚国产精品一区二区三区
不卡一二三区| 999视频精品| 久热re这里精品视频在线6| 欧美一区二区性| 免费成人网www| 精品日韩毛片| 国产精品腿扒开做爽爽爽挤奶网站| 性欧美长视频| 最新日韩av| 亚洲一区欧美| 婷婷成人av| 久久久噜噜噜| 日韩精品久久久久久| 亚洲精选91| 欧美日韩一区二区国产| 国产欧美日韩精品一区二区三区| 亚洲激情黄色| 蜜桃一区二区三区在线观看| 国产精品二区不卡| 日韩精品1区| 在线午夜精品| 91精品国产一区二区在线观看| 欧美日韩国产高清| 首页国产欧美久久| 日韩精品久久久久久| 国产精品毛片aⅴ一区二区三区| 久久国产99| 日本不卡一二三区黄网| 精品三级在线| 亚洲女同一区| 清纯唯美亚洲综合一区| 国产精品成久久久久| 国产精品久久| 午夜影院一区| 亚洲视频二区| 成人台湾亚洲精品一区二区| 国产精品久久久久毛片大屁完整版| 亚洲精品网址| 日本亚洲视频在线| 久久精品国产亚洲一区二区三区| 国产亚洲一卡2卡3卡4卡新区| 亚洲综合电影一区二区三区| 日韩毛片网站| 四虎4545www国产精品| 日韩一区二区三区精品视频第3页| 免费国产自线拍一欧美视频| 日韩不卡手机在线v区| 日韩影院二区| 日本成人在线网站| 色综合www| 久久国产毛片| 日韩欧美久久| 久久精品观看| 国产精品3区| 亚洲女同中文字幕| 另类综合日韩欧美亚洲| 午夜宅男久久久| 国产传媒在线| 日本久久一区| 国内精品福利| 欧美aa在线视频| 亚洲欧美久久| 在线中文字幕播放| 91精品在线免费视频| 亚洲福利久久| 欧美精品不卡| 亚洲影院天堂中文av色| 亚洲一级少妇| 国产精品玖玖玖在线资源| 午夜日韩av| av免费不卡国产观看| 日韩精品视频网| 伊人成人在线视频| 免费一级欧美片在线观看网站 | 国产劲爆久久| 狠狠干成人综合网| 国产夫妻在线| 国产欧美日韩视频在线| 日韩中文字幕区一区有砖一区| 欧美专区一区二区三区| 精品视频一区二区三区四区五区 | 麻豆高清免费国产一区| 精品无人区麻豆乱码久久久| 丝袜美腿成人在线| 日韩精品看片| 精品久久精品| 国产亚洲欧美日韩精品一区二区三区 | 日本不卡高清| 亚洲精品中文字幕乱码| 日韩av福利| 国产成人精品一区二区三区视频 | 亚洲+小说+欧美+激情+另类| 国产一区91| 欧美sss在线视频| 免费欧美日韩| 亚洲小说欧美另类婷婷| 91欧美在线| 免费亚洲婷婷| 国产精品magnet| 亚洲香蕉网站| 伊人久久视频| 国产乱码午夜在线视频| 欧美激情福利| 国产精品成人国产| 国产精品视频3p| 91欧美极品| 日本欧美一区| 国产情侣一区| 日本麻豆一区二区三区视频| 日韩欧美综合| 成人精品国产亚洲| 精品国产日韩欧美精品国产欧美日韩一区二区三区| 深夜福利亚洲| 日韩欧美另类中文字幕| 一区二区高清| 日本不卡高清| 国产日韩欧美一区二区三区在线观看| 日韩毛片在线| 少妇久久久久| 久久国产亚洲精品| 99国产精品一区二区| 91精品一区国产高清在线gif| 青青草视频一区| 91欧美极品| 国产精品第十页| 美女毛片一区二区三区四区最新中文字幕亚洲 | 麻豆精品在线视频| 免费在线亚洲欧美| 水蜜桃久久夜色精品一区的特点| 久久精品五月| 久久精品一本| 欧美a级一区二区| 久久国产精品亚洲77777| 婷婷色综合网| 视频一区二区三区入口| 亚洲精选91| 国产精品网在线观看| 精品久久在线| 桃色一区二区| 激情综合网址| 蜜臀精品一区二区三区在线观看| 日韩精品永久网址| 日韩av一级| 久热re这里精品视频在线6| 色综合视频一区二区三区日韩| 欧美午夜不卡| 免费国产自线拍一欧美视频| 亚洲精品影院在线观看| 国产精品亚洲综合在线观看| 国产一区二区精品福利地址| 欧美日韩亚洲一区在线观看| 国产精品网站在线看| 国产理论在线| 日韩一区二区免费看| 亚洲精品九九| 精品一区二区三区免费看 | 丝袜美腿诱惑一区二区三区| 亚洲精品极品少妇16p| 日韩久久99| 黄色在线网站噜噜噜| 久久99视频| 日韩欧美另类一区二区| 视频一区二区国产| 国产精品探花在线观看| 日韩一区二区三区精品视频第3页| 99pao成人国产永久免费视频| 日韩欧美精品| 狠狠久久婷婷| 欧美午夜三级| 久久久久欧美精品| 日韩高清二区| 日本h片久久| 精品国产精品国产偷麻豆| 国产福利一区二区三区在线播放| 日本综合精品一区| 精品欧美日韩精品| 亚洲欧美日本日韩| 粉嫩av一区二区三区四区五区 | 国产精品成人3p一区二区三区| 日韩精品成人| 综合一区av| 国产一区二区亚洲| 亚洲久久视频| 黄在线观看免费网站ktv| 亚洲精品乱码| 日韩电影免费网站| 日韩精品欧美大片| 欧美日韩在线网站| 国产视频一区二区在线播放| 久久婷婷一区| 免费在线观看一区| 亚洲在线久久| 黄色在线网站噜噜噜| 日韩av一区二| 国产精品毛片在线| 午夜影院一区| 国产精品极品在线观看| 六月丁香综合在线视频| 亚洲欧美不卡| 日韩理论片av|