日韩在线不卡一区二区三区四区五区,欧美视频一区二区三,欧美视频中文字幕一区二区,高端 精品 国产 探花,亚欧无吗一二三四五六区
RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營(yíng)銷解決方案
使用SpringBoot實(shí)現(xiàn)對(duì)RabbitMQ整合的方法-創(chuàng)新互聯(lián)

本篇文章給大家分享的是有關(guān)使用Spring Boot實(shí)現(xiàn)對(duì)RabbitMQ整合的方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說(shuō),跟著小編一起來(lái)看看吧。

成都創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:成都網(wǎng)站設(shè)計(jì)、成都做網(wǎng)站、外貿(mào)網(wǎng)站建設(shè)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的臨武網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!

1.Topic交換器介紹

Topic Exchange 轉(zhuǎn)發(fā)消息主要是根據(jù)通配符。 在這種交換機(jī)下,隊(duì)列和交換機(jī)的綁定會(huì)定義一種路由模式,那么,通配符就要在這種路由模式和路由鍵之間匹配后交換機(jī)才能轉(zhuǎn)發(fā)消息。

在這種交換機(jī)模式下:

    路由鍵必須是一串字符,用句號(hào)(.) 隔開,比如說(shuō) agreements.us,或者 agreements.eu.stockholm 等。

    路由模式必須包含一個(gè) 星號(hào)(*),主要用于匹配路由鍵指定位置的一個(gè)單詞,比如說(shuō),一個(gè)路由模式是這樣子:agreements..b.*,那么就只能匹配路由鍵是這樣子的:第一個(gè)單詞是 agreements,第四個(gè)單詞是 b。 井號(hào)(#)就表示相當(dāng)于一個(gè)或者多個(gè)單詞,例如一個(gè)匹配模式是agreements.eu.berlin.#,那么,以agreements.eu.berlin開頭的路由鍵都是可以的。
具體代碼發(fā)送的時(shí)候還是一樣,第一個(gè)參數(shù)表示交換機(jī),第二個(gè)參數(shù)表示routing key,第三個(gè)參數(shù)即消息。如下:

rabbitTemplate.convertAndSend("testTopicExchange","key1.a.c.key2", " this is  RabbitMQ!");

topic 和 direct 類似, 只是匹配上支持了"模式", 在"點(diǎn)分"的 routing_key 形式中, 可以使用兩個(gè)通配符:

*表示一個(gè)詞.

#表示零個(gè)或多個(gè)詞.

使用Spring Boot實(shí)現(xiàn)對(duì)RabbitMQ整合的方法

如上圖所示:此類交換器使得來(lái)自不同的源頭的消息可以到達(dá)一個(gè)對(duì)列,其實(shí)說(shuō)的更明白一點(diǎn)就是模糊匹配的意思,例如:上圖中紅色對(duì)列的routekey為usa.#,#代表匹配任意字符,但是要想消息能到達(dá)此對(duì)列,usa.必須匹配后面的#好可以隨意。圖中usa.news,usa.weather都能找到紅色隊(duì)列,符號(hào)“#”匹配一個(gè)或多個(gè)詞,符號(hào)“”匹配不多不少一個(gè)詞。因此“usa.#”能夠匹配到“usa.news.XXX”,但是“usa.” 只會(huì)匹配到“usa.XXX”。
注:交換器說(shuō)到底是一個(gè)名稱與隊(duì)列綁定的列表。當(dāng)消息發(fā)布到交換器時(shí),實(shí)際上是由你所連接的信道,將消息路由鍵同交換器上綁定的列表進(jìn)行比較,最后路由消息

2.示例代碼

1).RabbitMQ的Topic的bean配置

RabbitTopic.java類:

package com.example.rabbitmqtopic;
import org.springframework.amqp.core.Binding;
import org.springframework.amqp.core.BindingBuilder;
import org.springframework.amqp.core.Queue;
import org.springframework.amqp.core.TopicExchange;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
@Configuration
public class RabbitTopic {
 final static String message = "topic.message";
 final static String messages = "topic.messages";
 //創(chuàng)建隊(duì)列
 @Bean
 public Queue queueMessage() {
  return new Queue(RabbitTopic.message);
 }
 //創(chuàng)建隊(duì)列
 @Bean
 public Queue queueMessages() {
  return new Queue(RabbitTopic.messages);
 }
 //創(chuàng)建交換器
 @Bean
 TopicExchange exchange() {
  return new TopicExchange("topicExchange");
 }
  //對(duì)列綁定并關(guān)聯(lián)到ROUTINGKEY
 @Bean
 Binding bindingExchangeMessage(Queue queueMessage, TopicExchange exchange) {
  return BindingBuilder.bind(queueMessage).to(exchange).with("topic.message");
 }
 //對(duì)列綁定并關(guān)聯(lián)到ROUTINGKEY
 @Bean
 Binding bindingExchangeMessages(Queue queueMessages, TopicExchange exchange) {
  return BindingBuilder.bind(queueMessages).to(exchange).with("topic.#");//*表示一個(gè)詞,#表示零個(gè)或多個(gè)詞
  }
}

名稱欄目:使用SpringBoot實(shí)現(xiàn)對(duì)RabbitMQ整合的方法-創(chuàng)新互聯(lián)
URL分享:http://biofuelwatch.net/article/csjjjh.html
日韩在线不卡一区二区三区四区五区,欧美视频一区二区三,欧美视频中文字幕一区二区,高端 精品 国产 探花,亚欧无吗一二三四五六区