1. 安装教程
(1) Docker环境安装
安装yum-utils:
yum install -y yum-utils device-mapper-persistent-data lvm2
为yum源添加docker仓库位置:
yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo
安装docker:
yum install docker-ce
启动docker:
systemctl start docker
(2) RabbitMQ安装
- 下载rabbitmq3.7.15的docker镜像:
docker pull rabbitmq:3.7.15
- 使用docker命令启动:
docker run -d --name rabbitmq \
--publish 5671:5671 --publish 5672:5672 --publish 4369:4369 \
--publish 25672:25672 --publish 15671:15671 --publish 15672:15672 \
rabbitmq:3.7.15
- 进入容器并开启管理功能:
docker exec -it rabbitmq /bin/bash
rabbitmq-plugins enable rabbitmq_management
(3) rabbitmq15672的内部设置
-
访问地址查看是否安装成功:[http://192.168.3.101:15672/]
- 输入账号密码并登录:guest guest
-
添加用户test/test
(这里很重要的一步,是还要在tag上面设置为Administrator,设完这个之后,才能在外面用test登录)
-
添加一个virtual host 叫hospital
-
给test设置hospital的权限
2. 使用教程
(1) 使用场景
首先思考的是队列对应了什么,队列和消费者是一一对应的,一个队列对应了一个消费者。
一个队列一般对应了一个模块里面的一个功能,所以一个模块里面有几个功能需要,就可以有几个监听器。
而生产者的问题几乎可以另外考虑,基本也是一个功能,然后这个功能往队列里面添加。
所以队列是按照功能划分的,并不是按照什么用户id之类的东西,fanout也不是那么用的,over。
(2) 思路
紧接着,我们进入实战的核心阶段,在项目或者服务中使用 RabbitMQ,其实无非是有几个核心要点要牢牢把握住,这几个核心要点在撸码过程中需要“时刻的游荡在自己的脑海里”,其中包括:
我要发送的消息是什么
我应该需要创建什么样的消息模型:DirectExchange+RoutingKey?TopicExchange+RoutingKey?等
我要处理的消息是实时的还是需要延时/延迟的?
消息的生产者需要在哪里写,消息的监听消费者需要在哪里写,各自的处理逻辑是啥
3. 使用教程
部分使用教程在纯洁微笑42讲里面。
(1)yml的注意事项
#注意1,rabbitmq的链接写在spring分组下面
spring:
profiles:
active: dev
application:
name: hospital-log
rabbitmq:
host: 39.100.144.125 # rabbitmq的连接地址
#注意2,port写5672
port: 5672 # rabbitmq的连接端口号
#注意3,vertualhost后面写的没有斜杠,直接是hospital
virtual-host: hospital # rabbitmq的虚拟host
#注意4,新建的这个test账户一定是Administrator,也就是在15672那个网页能直接登录的
username: test # rabbitmq的用户名
password: test # rabbitmq的密码
publisher-confirms: true #如果对异步消息需要回调必须设置为true
(2) pom没有任何注意事项
(3) 生成队列和Exchange什么的
只要你在RabbitConfig那个Configuration类里面,写了Queue的Bean,或者写了Exchange什么的Bean,直接就能在RabbitMQ里面生成,你只要写一个Bean,两三行就行了,直接生成。
网友评论