Spring Boot and RabbitMQ 初探

概述

今天給大家分享以下三部分內(nèi)容:

  • Docker 安裝 RabbitMQ
  • Spring Boot and RabbitMQ demo
  • RabbitMQ 延遲隊列

Docker 安裝 RabbitMQ

第一步:拉取鏡像

docker pull rabbitmq:management

第二步:啟動

docker run -d \
--name rabbitmq \
-p 5672:5672 \
-p 15672:15672 \
-v /data/rabbitmq:/var/lib/rabbitmq \
--hostname myRabbit \
-e RABBITMQ_DEFAULT_VHOST=my_vhost \
-e RABBITMQ_DEFAULT_USER=admin \
-e RABBITMQ_DEFAULT_PASS=admin \
rabbitmq:management

說明:

-d 后臺運行容器;

--name 指定容器名;

-p 指定服務(wù)運行的端口(5672:應(yīng)用訪問端口;15672:控制臺Web端口號);

-v 映射目錄或文件;

--hostname 主機名(RabbitMQ的一個重要注意事項是它根據(jù)所謂的 “節(jié)點名稱” 存儲數(shù)據(jù),默認為主機名);

-e 指定環(huán)境變量;(RABBITMQ_DEFAULT_VHOST:默認虛擬機名;RABBITMQ_DEFAULT_USER:默認的用戶名;RABBITMQ_DEFAULT_PASS:默認用戶名的密碼)

Spring Boot and RabbitMQ demo

依賴

<dependency>
    <groupId>org.springframework.boot</groupId>
    <artifactId>spring-boot-starter-amqp</artifactId>
</dependency>

配置

spring:
  rabbitmq:
    host: localhost
    port: 5672
    username: admin
    password: admin
    virtual-host: my_vhost

配置

02.png

發(fā)送

03.png

接收

04.png

測試

GET http://localhost:8080/sendMsg?key=item.test&msg=Hello

RabbitMQ 延遲隊列

首先來看一個錯:

channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no

原因是,延遲隊列是 RabbitMQ 的一個插件,默認沒有安裝,需要安裝。

相關(guān)鏈接:

安裝插件:

  • 1.下載延遲隊列插件
  • 2.將插件復(fù)制到 RabbitMQ 的 /plugins 目錄下??截惙椒ǎ篸ocker cp rabbitmq_delayed_message_exchange-3.10.2.ez containerId:/plugins
  • 3.執(zhí)行,在 /plugins 目錄下執(zhí)行:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  • 4.重啟 RabbitMQ

配置:

13.png

發(fā)送

12.png

接收消息:

11.png

測試:

GET http://localhost:8080/sendDelayMsg/10000/iPhone13

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容