1.通过docker安装rabbitmq服务
拉取镜像
docker pull miaoshou-mq hub.c.163.com/library/rabbitmq:3.6.11-management
启动服务
docker run -d --hostname miaoshou-mall -e RABBITMQ_VM_MEMORY_HIGH_WATERMARK=0.1 -p 15672:15672 -p 5672:5672 -p 25672:25672 -p 61613:61613 -p 1883:1883 -e RABBITMQ_DEFAULT_USER=miaoshou -e RABBITMQ_DEFAULT_PASS=123456 -e RABBITMQ_DEFAULT_VHOST=mall --name miaoshou-mq hub.c.163.com/library/rabbitmq:3.6.11-management
启动参数解释:
RABBITMQ_VM_MEMORY_HIGH_WATERMARK 内存使用量 0.49被视为49%、56%处理为56%、1073741824作为绝对字节数、1024MiB作为一个单位的绝对字节数
--hostname RabbitMQ需要注意的重要一点是,它是基于所谓的“节点名称”来存储数据的,即默认的主机名。对于Docker来说,这意味着我们应该为每个守护进程显式指定 --hostname,这样我们就不会得到一个随机的主机名,从而可以跟踪我们的数据
启动完成之后 可通过控制台页面查看 http://127.0.0.1:15672/ 账号密码默认是:guest
/ guest
可通过 RABBITMQ_DEFAULT_USER 、RABBITMQ_DEFAULT_PASS参数重置
2.Rabbitmq 交流机 Exchanges
交流机是负责分发、路由生产者消息具体到那个队列来处理
交流机有四种类型 (direct直连模式) 、(fanout扇形模式)、(topic主题模式)、(headers头部模式)
direct直连模式:
生产者发送消息到 direct直连交流机 直连交流机将消息发送到符合 route_key、queue_name 的所有绑定的队列上,直连模式 route_key 不可以使用模糊方式
fanout扇形模式:
生产者发送消息到 fanout 扇形交流机 扇形交流机推到他绑定的所有队列上 ,此时route_key不起作用也就没必要设置
topic主题模式:
生成者发送消息到topic 主题交流机 主题交流机根据route_key 分发到绑定的队列上,队列跟主题交流机的绑定route_key 可以是模糊方式 比如:mall.# 代表 推送过来的消息route_key 符合mall.开头的都推送
headers头部模式:
生成者发送消息携带header信息到 headers 头部交流机 头部交流机根据header 信息分发到绑定的队列上,队列跟头部交流机的绑定通过Arguments参数配置分配规则