RabbitMQ

  • RabbitMQ基础
    • RabbitMQ概述
    • RabbitMQ安装

1 RabbitMQ简介

RabbitMQ是一个由 Erlang 语言开发的基于 AMQP协议的消息队列。

2 RabbitMQ特点

(1) 吞吐量提升:无需等待订阅者处理完成,响应更快速;
(2) 故障隔离:服务没有直接调用,不存在级联失败问题;
(3) 调用间没有阻塞,不会造成无效的资源占用;
(4) 耦合度极低,每个服务都可以灵活插拔,可替换;
(5) 流量削峰:不管发布事件的流量波动多大,都由Broker接收,订阅者可以按照自己的速度去处理事件.

3 RabbitMQ原理

(01) Producer:消息生产者,就是投递消息的程序。
(02) Consumer:消息消费者,就是接受消息的程序。
(03) Broker:接收和分发消息的应用,简单来说就是消息队列服务器实体。
(04) Vhost:虚拟主机,一个broker里可以开设多个vhost,用作不同用户的权限分离。
(05) Exchange:消息交换机,根据分发规则,匹配查询表中的routing key,分发消息到queue中去。
(06) 常用类型:direct(point-to-point), topic(publish-subscribe), fanout (multicast)。
(07) Queue:消息队列载体,每个消息都会被投入到一个或多个队列。
(08) Binding:绑定,它的作用就是把exchange和queue按照路由规则绑定起来。
(09) Routing Key:路由关键字,exchange根据这个关键字进行消息投递。
(10) Connection:网络连接,比如一个TCP连接。
(11) Channel:消息通道,在客户端的每个连接里,可建立多个channel,每个channel代表一个会话任务。


注意:消息队列通常由生产者(Producer)负责产生消息,消费者(Consumer)负责消费消息,消息队列管理器(Message Queue Manager)负责存储和转发消息。