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...