docker 安装rabbitMQ,整合springboot与rabbitMQ配置
docker安装rabbitMQ:
docker pull rabbitmq:management 拉取rabbitMQ镜像
docker run -d --hostname devops_rabbit_host1 --name lxb_devops_gisquest -e RABBITMQ_DEFAULT_USER=admin -e RABBITMQ_DEFAULT_PASS=password -p 15672:15672 -p 5672:5672 rabbitmq:management rabbitMQ启动命令
启动命令中参数介绍:
-d 以守护进程方式在后台运行
-p 15672:15672 management 界面管理访问端口
-p 5672:5672 amqp 访问端口
--name:指定容器名
--hostname:设定容器的主机名,它会被写到容器内的 /etc/hostname 和 /etc/hosts,作为容器主机IP的别名,并且将显示在容器的bash中
-e 参数
RABBITMQ_DEFAULT_USER 用户名
RABBITMQ_DEFAULT_PASS 密码
涉及到的端口:
4369 erlang 发现口
5672 client 端通信口
15672 管理界面 ui 端口
25672 server 间内部通信口
如果是在阿里云服务器上安装,需要开放对应的端口,如果是linux物理服务器需要关闭防火墙
rabbitMQ的几种工作模式
simple简单模式为一个队列中一条消息,只能被一个消费者消费。
Work工作模式为一个生产者,多个消费者,每个消费者获取到的消息唯一。
publish/subscribe订阅模式为一个生产者发送的消息被多个消费者获取。
routing路由模式为生产者发送的消息主要根据定义的路由规则决定往哪个队列发送。
topic 主题模式为生产者,一个交换机(topicExchange),模糊匹配路由规则,多个队列,多个消费者。
RPC模式为客户端 Client 先发送消息到消息队列,远程服务端 Server 获取消息,然后再写入另一个消息队列,向原始客户端 Client 响应消息处理结果。
springcloud整合rabbitMQ
引入依赖
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-amqp</artifactId>
</dependency>
配置文件添加配置:
spring
rabbitmq:
#此为非集群配置
host: 47.97.43.53
port: 5672
#集群配置
addresses: ip:5672,ip:5673,ip:5674,......
virtual-host: /dev
password: password
username: admin
#开启手动确认消息
listener:
simple:
acknowledge-mode: manual
创建RabbitMQConfig文件
@Configuration
public class RabbitMQConfig{
}