过多的描述就不扯了,本文主要记录RabbitMQ的安装以及简单使用。本次安装是为了实现spring cloud的消息总线:SpringCloud全家桶学习之消息总线---SpringCloud Bushtml
RabbitMQ是Erlang语言编写,因此Erang环境必需要有,注:Erlang环境必定要与RabbitMQ版本匹配:https://www.rabbitmq.com/which-erlang.htmlspring
Erlang下载地址:https://www.rabbitmq.com/releases/erlang/(根据自身需求及匹配关系,下载对应rpm包)vim
RabbitMQ下载地址:https://www.rabbitmq.com/releases/rabbitmq-server/(根据自身需求及匹配关系,下载对应rpm包)后端
rabbitmq安装依赖于socat,因此须要下载socat。浏览器
socat下载地址:http://repo.iotti.biz/CentOS/6/x86_64/socat-1.7.3.2-1.el6.lux.x86_64.rpmapp
必定按照如下顺序安装:post
①rpm -ivh erlang-18.3-1.el6.x86_64.rpm性能
②rpm -ivh socat-1.7.3.2-1.el6.lux.x86_64.rpm学习
③rpm -ivh rabbitmq-server-3.6.5-1.noarch.rpm url
①cd /usr/lib/rabbitmq/bin
②./rabbitmq-server start
①生产者发送消息给交换机
②交换机接收消息,若是交换机没有绑定队列,消息扔进垃圾桶
③队列接收消息,存储在内存,等待消费者链接监听获取消息,消费成功后,返回确认
一些场景:短信,QQ
①生产者将消息发送给交换机
②交换机发送给绑定的后端队列
③一个队列被多个消费者同时监听,造成消息的争抢结构:根据消费者所在的系统的空闲、性能争抢队列中的消息
一些场景:抢红包
注:图中未画消费者
①交换机定义类型为:fanout
②交换机绑定多个队列
③生产者将消息发送给交换机,交换机复制同步消息到后端全部的队列中
一些场景:邮件群发
①交换机定义类型为:direct
②交换机绑定多个队列,队列绑定交换机时,给交换机提供了一个routingkey(路由key)
③发布订阅时,全部fanout类型的交换机绑定后端队列用的路由key都是“”;在路由模式中须要绑定队列时提供当前队列的具体路由key
一些场景:错误消息的接收和提示
①交换机定义类型为:topic
②交换机绑定多个队列,与路由模式很是类似,作到按类划分消息
③路由key队列绑定的通配符以下:#表示任意字符串,*表示没有特殊符号(单词)的字符串