RabbitMQ¶
RabbitMQ介绍¶
-
RabbitMQ是一个由Erlang语言开发的AMQP1的开源实现
-
应用场景主要有:异步处理、应用解耦、流量削峰、消息通讯
RabbitMQ中的专业名词介绍¶
- Broker: 接收和分发消息的应用,Message Broker
- Virtual host: 出于多租户和安全因素设计的,多用户使用一个Broker时,不同的用户通过Virtual host的隔离,在各自的空间创建exchange、queue
- Connection: Publisher/Consumer和Broker之间的TCP连接
- Channel:Channel是在Connection内部建立的逻辑连接,可极大减少操作系统建立TCP Connection的开销
- Exchange: Message到达Broker的第一站,根据分发规则,匹配查询表的routing key,分发消息到Queue中去。常见 Direct、Topic、Fanout
- Queue: 消息最终被送到这里,等待Consumer取走。
- Binding: Exchange和Queue之间的虚拟连接,binding中可包含routing key。Binding信息保存到Exchange中的查询表,用于message分发依据

RabbitMQ安装¶
- 下载Erlang,地址
- 配置环境变量ERLang_HOME
- 下载安装RabbitMQ
- 运行安装命令
rabbitmq-plugins enable rabbitmq_managementrabbitmqctl status使用localhost:15672访问页面
RabbitMQ应用¶
- gitlab项目 实现基本的功能
- 使用死信队列,延时发送邮件
-
Advanced Message Queuing Protocol,一个提供统一消息服务的应用层标准高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计 ↩