1. rabbitmq的诞生及概念
- 消息队列的来源:
①、分布式系统已成为当前系统架构的主流,而消息队列在分布式系统中作为消息中间件能为分布式系统中的各种应用提供会话平台。
②、用多进程异步操作取代单进程同步操作满足了高性能系统架构需求。
③、可以防止服务器一下子做很多事情,消息队列采用队列的形式,消费者读取队列里面的消息的时候是一条一条读取的,服务器不会超负载。
2.消息队列的概念:
消息队列中间件是分布式系统中重要的组件,主要用于应用解耦、异步消息、流量削峰等问题。可实现高性能、高可用、可伸缩和最终一致性架构。
3.消息队列的种类:
ActiveMQ、RabbitMQ、Redis的list和订阅、ZeroMQ、Kafka、阿里的RocketMQ等。
2. rabbitmq的AMQP协议
一个提供统一消息服务的应用层标准高级消息队列协议,是一个应用层协议的开放标准,为面向消息的中间件设计。
- 生产者(Producer):发送消息的应用。
- 消费者(Consumer):接收消息的应用。
- 队列(Queue):存储消息的缓存。
- 消息(Message):由生产者通过RabbitMQ发送给消费者的信息。
- 连接(Connection):连接RabbitMQ和应用服务器的TCP连接。
- 通道(Channel):连接里的一个虚拟通道。当你通过消息队列发送或者接收消息时,这个操作都是通
过通道进行的。 - 交换机(Exchange):交换机负责从生产者那里接收消息,并根据交换类型分发到对应的消息列队
里。要实现消息的接收,一个队列必须到绑定一个交换机。 - 绑定(Binding):绑定是队列和交换机的一个关联连接。
- 路由键(Routing Key):路由键是供交换机查看并根据键来决定如何分发消息到列队的一个键。路由
键可以说是消息的目的地址。 - 用户:在RabbitMQ里,是可以通过指定的用户名和密码来进行连接的。每个用户可以分配不同的权限,例如读权限,写权限以及在实例里进行配置的权限。
3. rabbitmq的工作模式
- 简单队列
- 工作队列
- 发布订阅模式
- 路由模式
- 主题模式