Erlang RabbitMQ 等环境安装:

Erlang官方:https://github.com/erlang/otp/releases     

RabbitMQ官方:https://www.rabbitmq.com/download.html   

RabbitMQ-Erlang:https://github.com/rabbitmq/erlang-rpm/releases   

可参考《RabbitMQ 3.86 和 Erlang 23.0.0

这里推荐使用 RabbitMQ公司维护的erlang版本,该版本只保留了与RabbltMQ相关的功能,安装快、方便。

当前使用:erlang-23.0.3-1.el7.x86_64.rpm      

socat 网络工具:已包含在 RabbitMQ-Erlang 中,可通过命令检查软件包是否安装 CentOS检查软件包是否安装


RabbitMQ与Erlang版本匹配关系:https://www.rabbitmq.com/which-erlang.html   


安装 Erlang、RabbitMQ并启动:

  1. 使用命令 rpm -ivh erlang-23.0.3-1.el7.x86_64.rpm 安装 Erlang
  2. 由于使用的是CentOS7,所以使用安装包 rabbitmq-server-3.8.6.rc.1-1.el7.noarch.rpm  
  3. 使用命令 yum install rabbitmq-server-3.8.6.rc.1-1.el7.noarch.rpm 安装 RabbitMQ。
  4. 启动 RabbitMQ服务 service rabbitmq-server start
  5. 命令 service rabbitmq-server status 时间看RabbitMQ服务是否成功运行。
  6. RabbitMQ更多配置信息参考:https://www.rabbitmq.com/configure.html   
  7. 如需 rabbitmq.conf 参考 https://github.com/rabbitmq/.../rabbitmq.conf.example (老版本可以找到直接搜索即可)  


RabbitMQ开启WebUI管理界面:

  1. 通过 rabbitmq-plugins list  查看RabbitMQ插件列表
  2. rabbitmq-plugins enable rabbitmq_management 激活WebUI管理界面插件
  3. 使用 rabbitmq-plugins list 检查一下插件是否激活。
  4. service rabbitmq-server restart 重启RabbitMQ服务。
  5. 创建登录用户 rabbitmqctl add_user admin a ,用户名admin密码a   (因为默认的guest用户只能在本机登录)   
  6. 赋予admin用户administrator角色,rabbitmqctl set_user_tags admin administrator 


  1. 设置权限 rabbitmqctl set_permissions -p "/" admin ".*" ".*" ".*"   

语法set_permissions [-p <vhostpath>] <user> <conf> <write> <read>   


  1. rabbitmqctl list_users 查看用户列表   
  2. rabbitmqctl status | grep protocol 查看HTTP访问端口 

  3. http://192.168.1.123:15672/ 输入 admin a 进入RabbitMQ管理页面(访问前关闭防火墙 systemctl stop firewalld.service)




MQ全称为Message Queue,即消息队列,RabbitMQ是由erlang语言开发,基于AMQP(Advanced Message Queue 高级消息队列协议)协议实现的消息队列,它是一种应用程序之间的通信方法,消息队列在分布式系统开发中应用非常广泛。

RabbitMQ官方地址:http://www.rabbitmq.com/ 


开发中消息队列通常有如下应用场景: 

1、任务异步处理。 

  • 将不需要同步处理的并且耗时长的操作由消息队列通知消息接收方进行异步处理。提高了应用程序的响应时间。 

2、应用程序解耦合 

  • MQ相当于一个中介,生产方通过MQ与消费方交互,它将应用程序进行解耦合。 

目前,市面上使用的消息对列很多:ActiveMQ,RabbitMQ,ZeroMQ,Kafka,MetaMQ,RocketMQ、Redis。


RabbitMQ的优势:

1、使得简单,功能强大。 

2、基于AMQP协议。 

3、社区活跃,文档完善。 

4、高并发性能好,这主要得益于Erlang语言。 

5、Spring Boot默认已集成RabbitMQ


RabbitMQ的工作原理

1、基本结构图:



2、组成部分说明

Broker:消息队列服务进程,此进程包括两个部分:Exchange和Queue。 

Exchange:消息队列交换机,按一定的规则将消息路由转发到某个队列,对消息进行过虑。

Queue:消息队列,存储消息的队列,消息到达队列并转发给指定的消费方。 

Producer:消息生产者,即生产方客户端,生产方客户端将消息发送到MQ。 

Consumer:消息消费者,即消费方客户端,接收MQ转发的消息。


3、消息发布给你接收流程: 

发送消息 

1、生产者和Broker建立TCP连接。 

2、生产者和Broker建立通道。 

3、生产者通过通道消息发送给Broker,由Exchange将消息进行转发。 

4、Exchange将消息转发到指定的Queue(队列) 


接收消息 

1、消费者和Broker建立TCP连接 

2、消费者和Broker建立通道 

3、消费者监听指定的Queue(队列) 

4、当有消息到达QueueBroker默认将消息推送给消费者。 

5、消费者接收到消息。