溫馨提示×

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

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶(hù)服務(wù)條款》

Spring Boot如何整合RabbitMQ

發(fā)布時(shí)間:2021-12-24 09:20:16 來(lái)源:億速云 閱讀:101 作者:小新 欄目:大數(shù)據(jù)

小編給大家分享一下Spring Boot如何整合RabbitMQ,希望大家閱讀完這篇文章之后都有所收獲,下面讓我們一起去探討吧!

Spring Boot 整合 RabbitMQ

交換器(Exchange)

交換器就像路由器,我們先是把消息發(fā)到交換器,然后交換器再根據(jù)綁定鍵(binding key)和生產(chǎn)者發(fā)送消息時(shí)的路由鍵routingKey,

按照交換類(lèi)型Exchange Type(fanout,direct,topic)把消息投遞到對(duì)應(yīng)的隊(duì)列。

隊(duì)列(Queue)

存放消息的隊(duì)列。

綁定(Binding)

交換器怎么知道把這條消息投遞到哪個(gè)隊(duì)列呢?這就需要用到綁定了。大概就是:使用某個(gè)綁定鍵(binding key),把某個(gè)隊(duì)列(Queue)綁定到某個(gè)交換器(Exchange),這樣交換器就知道根據(jù)路由鍵把這條消息投遞到哪個(gè)隊(duì)列了。

加入 RabbitMQ maven 依賴(lài)

Spring Boot如何整合RabbitMQ

配置

application.yaml文件中配置

Spring Boot如何整合RabbitMQ

RabbitMQConfig.java 配置

@Configurationpublic class RabbitMQConfig {
   public final static String QUEUE_NAME = "spring-boot-queue";
   public final static String EXCHANGE_NAME = "spring-boot-exchange";
   public final static String BINDING_KEY = "spring.boot.key.#";
// 創(chuàng)建隊(duì)列    @Bean    public Queue queue() {
       return new Queue(QUEUE_NAME);
   }
// 創(chuàng)建一個(gè) topic 類(lèi)型的交換器    @Bean    public TopicExchange exchange() {
       return new TopicExchange(EXCHANGE_NAME);
   }
// 使用路由鍵(routingKey)把隊(duì)列(Queue)綁定到交換器(Exchange)    @Bean    public Binding binding(Queue queue, TopicExchange exchange) {
       return BindingBuilder.bind(queue).to(exchange).with(BINDING_KEY);
   }
}

注:上面配置的是TopicExchange

實(shí)際業(yè)務(wù)中,可以配置多個(gè)隊(duì)列和binding來(lái)滿(mǎn)足需求。

生產(chǎn)者

直接調(diào)用 rabbitTemplate 的 convertAndSend 方法就可以了。從下面的代碼里也可以看出,我們不是把消息直接發(fā)送到隊(duì)列里面的,而是先發(fā)送到了交換器,交換器再根據(jù)路由鍵把我們的消息投遞到對(duì)應(yīng)的隊(duì)列。

消費(fèi)者

消費(fèi)者也很簡(jiǎn)單,只需要對(duì)應(yīng)的方法上加入 @RabbitListener 注解,指定需要監(jiān)聽(tīng)的隊(duì)列名稱(chēng)即可。

Spring Boot如何整合RabbitMQ

運(yùn)行項(xiàng)目

運(yùn)行項(xiàng)目,然后打開(kāi)瀏覽器,輸入 http://localhost:9999/sendMessage (具體地址根據(jù)服務(wù)器)。在控制臺(tái)就可以看到生產(chǎn)者在不停的的發(fā)送消息,消費(fèi)者不斷的在消費(fèi)消息。

Spring Boot如何整合RabbitMQ

看完了這篇文章,相信你對(duì)“Spring Boot如何整合RabbitMQ”有了一定的了解,如果想了解更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道,感謝各位的閱讀!

向AI問(wèn)一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI