SpringBoot融合RabbitMQ的方案

2021-10-10 13:34:40 字數 3953 閱讀 3540

springboot融合rabbitmq的方案。

大體分兩塊內容:

rabbitmq管控臺配置的內容。

**書寫的內容。

常見場景。

自定義起名規範。

一、rabbitmq管控臺配置的內容:

1、新增使用者,用管理員賬戶,登入到管控臺,選擇admin標籤,選擇users,注意新增使用者時候的tag(如果不選擇tag則代表none,只能程式中使用)。

在此,我們選擇的tags是policymaker,具體的參見詳細說明。

2、新增虛擬主機,還是用管理員賬戶新增。

3、管控臺建立交換器:

用新建立的賬戶登入到管控臺,然後直接新增。注意type欄位,

direct:預設交換器。單一模式。需要指定具體的routingkey,如果路由鍵匹配的話,訊息就投遞到相應的佇列。

topic:單一模式,類似於direct,但可以新增萬用字元。

fanout:廣播模式。發布/訂閱模式的交換器,當你傳送一條訊息的時候,交換器會把訊息廣播到所有附加到這個交換器的佇列上。

如果多個機器監聽了同乙個queue,只有乙個機器消費掉該內容。

該交換器可以新增多個不同的queue來實現廣播模式。

headers:允許你匹配amqp訊息的header而非路由鍵,除此之外headers交換器和direct交換器完全一致,但效能卻很差,幾乎用不到。

4、管控臺建立佇列:

用新建立的賬戶登入到管控臺,

5、管控臺關聯交換器和佇列:

用新建立的賬戶登入到管控臺

#新增rabbitmq佇列支援

rabbitmq.host=qingsu-rabbitmq-test

rabbitmq.port=5672

rabbitmq.bd.username=user_bd_system

rabbitmq.bd.password=user_bd_system

rabbitmq.bd.virtual-host=virtualhosts_bd_system

2、**中新增rabbitmqconfig檔案

/**

* @author :

* @date: 2023年11月14日

*/@configuration

public class rabbitmqbdconfig ")

private string host;

@value("$")

private string port;

/*** 原有的佇列

*/@value("$")

private string username;

@value("$")

private string password;

@value("$")

private string virtualhost;

/*** 建立連線工廠

** @return

*/@bean(name = "bdconnectionfactory")

@primary

public connectionfactory connectionfactory()

/*** rabbittemplate模版

** @param connectionfactory

* @return

*/@bean(name = "bdrabbittemplate")

@primary

public rabbittemplate rabbittemplate(@qualifier("bdconnectionfactory") final connectionfactory connectionfactory)

/*** 工程中使用的rabbitmessagingtempalte模版

** @param rabbittemplate

* @return

*/@bean("bdrabbitmessagingtemplate")

@primary

public rabbitmessagingtemplate rabbitmessagingtemplate(@qualifier("bdrabbittemplate") final rabbittemplate

rabbittemplate)

/*** 監聽配置

** @param configurer

* @param connectionfactory

* @return

*/@bean(name = "bdrabbitlistenercontaine***ctory")

@primary

public ******rabbitlistenercontaine***ctory rabbitlistenercontaine***ctory(final

******rabbitlistenercontaine***ctoryconfigurer configurer,

@qualifier("bdconnectionfactory")

final connectionfactory

connectionfactory)

}

3、新增訊息監聽**

/**

* 佇列監聽

* * @author

* @date: 2023年11月14日

*/@service

public class bdmessagecustomer

}

4、新增傳送訊息**

public class rabbitmessagesend ");}}

三、常用場景:

1、廣播模式(多個佇列都接收訊息)。

使用場景:建立了乙個使用者,需要給該使用者傳送郵件、簡訊。則:

建立乙個交換器,建立兩個queue,該交換器繫結這兩個queue。

exchange的type選擇fanout,然後在exchange詳情頁面,繫結兩個佇列即可。

2、單播模式(乙個佇列都接收訊息)。

exchange的type選擇direct即可。然後在exchange詳情頁面,繫結該佇列,並輸入routingkey(相當於秘鑰),通過秘鑰找到該佇列。

3、關於routingkey的說明:

只是在exchange的type選擇direct、topic時候有用。主要是關聯exchange和queue。

四、自定義起名規範:

1、username:登入到管理臺、程式中使用的名稱。

起名規則:user_系統名稱

2、password:密碼。

起名規則:隨意

3、virtualhost:虛擬主機。類似於分組。

起名規則:virtualhost_系統名稱

4、exchange:交換器。傳送訊息的時候,會指定交換器。

起名規則:exchange_系統名稱_模組_功能

5、routingkey:路由規則。在交換器型別選擇direct、topic的時候有效。選擇fanout的時候無效。

起名規則:一般是用queue代替

6、queue:佇列。

起名規則:queue_系統名稱_模組_功能

SpringBoot使用訊息中介軟體RabbitMQ

首先在docker中安裝rabbitmq,pull 帶有web介面的 docker pull rabbitmq 3 management5672為客戶端,15672為web介面埠 docker run d p5672 5672 p15672 15672 name rabbitmq01 映象id簡要介...

R A B 大數問題

給定兩個整數a和b,其表示形式是 從個位開始,每三位數用逗號 隔開。現在請計算a b的結果,並以正常形式輸出。input 輸入包含多組資料資料,每組資料佔一行,由兩個整數a和b組成 10 9 a,b 10 9 output 請計算a b的結果,並以正常形式輸出,每組資料佔一行。sample inpu...

CentOS中利用Docker安裝RabbitMQ

centos中利用docker安裝rabbitmq 1 拉取映象 帶管理平台 docker pull rabbitmq 3.7.7 management 2 啟動容器 docker run d restart always name test rabbit e rabbitmq default us...