概述
今天給大家分享以下三部分內(nèi)容:
- Docker 安裝 RabbitMQ
- Spring Boot and RabbitMQ demo
- RabbitMQ 延遲隊(duì)列
Docker 安裝 RabbitMQ
第一步:拉取鏡像
docker pull rabbitmq:management
第二步:?jiǎn)?dòng)
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
說(shuō)明:
-d 后臺(tái)運(yùn)行容器温峭;
--name 指定容器名惨奕;
-p 指定服務(wù)運(yùn)行的端口(5672:應(yīng)用訪問(wèn)端口;15672:控制臺(tái)Web端口號(hào))鉴象;
-v 映射目錄或文件;
--hostname 主機(jī)名(RabbitMQ的一個(gè)重要注意事項(xiàng)是它根據(jù)所謂的 “節(jié)點(diǎn)名稱(chēng)” 存儲(chǔ)數(shù)據(jù)何鸡,默認(rèn)為主機(jī)名)纺弊;
-e 指定環(huán)境變量;(RABBITMQ_DEFAULT_VHOST:默認(rèn)虛擬機(jī)名骡男;RABBITMQ_DEFAULT_USER:默認(rèn)的用戶(hù)名俭尖;RABBITMQ_DEFAULT_PASS:默認(rèn)用戶(hù)名的密碼)
Spring Boot and RabbitMQ demo
依賴(lài)
<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
測(cè)試
GET http://localhost:8080/sendMsg?key=item.test&msg=Hello
RabbitMQ 延遲隊(duì)列
首先來(lái)看一個(gè)錯(cuò):
channel error; protocol method: #method<channel.close>(reply-code=404, reply-text=NOT_FOUND - no
原因是洞翩,延遲隊(duì)列是 RabbitMQ 的一個(gè)插件稽犁,默認(rèn)沒(méi)有安裝,需要安裝骚亿。
相關(guān)鏈接:
- RabbitMQ 插件:https://www.rabbitmq.com/community-plugins.html
- 延遲插件:https://github.com/rabbitmq/rabbitmq-delayed-message-exchange/releases
安裝插件:
- 1.下載延遲隊(duì)列插件
- 2.將插件復(fù)制到 RabbitMQ 的 /plugins 目錄下已亥。拷貝方法:docker 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
測(cè)試: