在微服務架構的系統中, 我們通常會使用輕量級的消息代理來構建 一 個共用的消息主題讓系統中所有微服務實例都連接上來, 由于該主題中產生的消息會被所有實例監聽和消費, 所以我們稱它為消息總線。 在總線上的各個實例都可以方便地廣播 一 些需要讓其他連接在該主題上的實例都知道的消息, 例如配置信息的變更或者其他 一 些管理操作等
1 RabbitMQ實現消息總線
1.1 ubantu中安裝RabbitMQ
1.1.1 安裝Erlang:
sudo apt-get install erlang
1.1.2 新增APT倉庫到/etc/apt/sources.list.d:
echo'deb http://www.rabbitmq.com/debian/ testing main' I sudo tee /etc/apt/sources.list.d/rabbitmq.list
1.1.3 更新APT倉庫的packagelist:
sudo apt-get update
1.1.4 安裝Rabbit Server:
sudo apt-get install rabbitmq-server
1.1.5 通過Web進行管理:
rabbitmq-plugins enable rabbitmq management
1.1.6 訪問http: //localhost: 15672/,使用默認帳號密碼guest登錄并創建一個名為springcloud,tags為administrator的用戶
2 SpringBoot整合RabbitMQ
2.1 創建一個springboot工程命名為rabbitmq-hello并引入amqp依賴
2.2 配置application.yml文件
2.3 創建消息生產者 Sender 。 通過注入 AmqpTemplate 接口的實例來實現消息的發一送AmqpTemplate 接口定義了 套針對 AMQP 協議的基礎操作。在 Spring Boot中會根據配置來注入其具體實現。 在該生產者中, 我們會產生 一 個字符串, 并發送到名為 hello 的隊列中
2.4 創建消息消費者 Receiver 。 通過 @Rabb遼歸江ener 注解定義該類對 hello 隊列的監聽, 并用 @Rabb江Handler 注解來指定對消息的處理方法。 所以, 該消費者實現了對 hello 隊列的消費, 消費操作為輸出消息的字符串內容
2.5 創建 RabbitMQ 的配置類 Rabb江Config, 用來配置隊列、 交換器、 路由等高級信息。 這里我們以入門為主, 先以最小化的配置來定義, 以完成 一 個基本的生產和消費過程
2.6 創建單元測試類, 用來調用消息生產
2.7 啟動工程訪問rabbitmq的web管理頁面
2.8 運行單元測試