中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

rabbitMQ精講系列第十八篇 高級整合應用第一篇

發布時間:2020-07-07 10:31:26 來源:網絡 閱讀:419 作者:凱哥Java 欄目:編程語言

在本章學習中,我們主要是和應用整合的。下面來看看本章我們主要內容:

整合spring AMQP和spring boot及spring cloud整合。以及在整合中需要注意及工作中踩過的坑。如同如下圖:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

本文主要內容:

使用代碼創建rabbitAdmin,通過rabbitAdmin操作MQ

本文是《RabbitMQ精講系列》教程中的第十八篇 高級應用整合的第一篇。如果對RabbitMQ感興趣的朋友,可以從第一章開始。

RabbitMQ整合Spring AMQP實戰

在Spring AMQP整合中,重要的組件:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

RabbitAdmin類可以和好的操作RabbitMQ,在spring中直接進行注入即可:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

注意:

autoStartup必須設置為ture,否則spring容器不會加載類.

為什么要獲取RabbitAdmin?

????RabitAdmin底層實現就是從spring容器中獲取Exchange、Bingding、Routingkey以及Queue的@Bean聲明。

使用RabbitTemplate的execute方法執行對應的聲明、修改、刪除等一系列的RabbitMQ基礎功能操作。

代碼演示:

添加pom文件:

<!-- rabbitmq-->
<dependency>
??<groupId>com.rabbitmq</groupId>
??<artifactId>amqp-client</artifactId>
??<version>3.6.5</version>
</dependency>
<!-- spring?啟動-->
<dependency>
??<groupId>org.springframework.boot</groupId>
??<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>


rabbitMQ精講系列第十八篇 高級整合應用第一篇

需要注意:

如果spring boot 是1.5.6版本的時候,rabbit的版本號可以使用3.6.5以上

如果spring boot的版本是2.1.x的時候,rabbit的版本號可以使用5.7.x

創建rabbitMQConfig:

1:先獲取到ConnectionFactory.

注意:是amqp.rabbit下的。如下圖:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

創建ConnectionFactory:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

2:獲取rabbitAdmin的代碼:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

注意:setAutoStartUp必須設置為true

進行測試:

因為在RabbitMQConfig中我們已經將rabbitAdmin由spring容器管理了。所以在這里,我們直接使用autowired就可以。如下圖:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

我們先在頁面管控臺查看:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

并沒有。啟動后,在查看,是否已經創建。

測試類啟動成功:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

在頁面管控臺查看,exchange交換機是否已經創建:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

已經創建成功。說明,rabbitAdmin我們成功了。

通過rabbitAdmin創建Queue:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

創建綁定關系:

rabbitMQ精講系列第十八篇 高級整合應用第一篇

啟動后,查看test_spring_direct_queue是否綁定了test_spring_direct交換機。

rabbitMQ精講系列第十八篇 高級整合應用第一篇我們發現綁定成功了。

綁定方式二:使用BindingBuilder的鏈式

rabbitAdmin.declareBinding(
? ? ?BindingBuilder.bind(new?Queue("test_spring_topic_queue",false)) ? ?//創建隊列
? ? ?.to(new?TopicExchange("test_spring_topic",false,false)) ? ?//綁定交換機
? ? ?.with("user.#") ? ?//設置routingkey
);


rabbitMQ精講系列第十八篇 高級整合應用第一篇

需要注意的:當時fanout的時候,在bingdingBuilder的時候沒有with.因為fanout的不需要routingkey。

本節總結:

????使用spring的@Bean注解怎么創建connection工廠及怎么創建rabbitAdmin以及怎么使用。

下節預告:

????我們知道在rabbitMQ的基礎API中得到隊列、binding以及路由是通過channel對象獲取的,如下圖。那么在springAMQP模式下怎么聲明呢?在下節課中,我們將要講解到的。

本文出自凱哥Java(kaigejava) 個人博客(www.kaigejava.com)

rabbitMQ精講系列第十八篇 高級整合應用第一篇



向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

宁波市| 缙云县| 米泉市| 东台市| 樟树市| 虹口区| 麦盖提县| 麻江县| 滕州市| 康平县| 普安县| 磴口县| 济阳县| 华宁县| 辉南县| 亳州市| 昭平县| 城市| 凤城市| 周口市| 通城县| 澄迈县| 闽清县| 建昌县| 九江县| 蓬莱市| 山西省| 陈巴尔虎旗| 齐齐哈尔市| 东平县| 龙南县| 北票市| 万山特区| 江城| 庆城县| 高要市| 宜兰县| 蓝田县| 互助| 元阳县| 资中县|