Spring Boot and RabbitMQ 初探

概述

今天給大家分享以下三部分內容:

  • 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 指定服務運行的端口(5672:應用訪問端口;15672:控制檯Web端口號);

-v 映射目錄或文件;

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

-e 指定環境變量;(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

配置

發送

接收

測試

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 的一個插件,默認沒有安裝,需要安裝。

相關鏈接:

安裝插件:

  • 1.下載延遲隊列插件
  • 2.將插件複製到 RabbitMQ 的 /plugins 目錄下。拷貝方法:docker cp rabbitmq_delayed_message_exchange-3.10.2.ez containerId:/plugins
  • 3.執行,在 /plugins 目錄下執行:rabbitmq-plugins enable rabbitmq_delayed_message_exchange
  • 4.重啓 RabbitMQ

配置:

發送

接收消息:

測試:

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

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章