RabbitMQ base 01

2019-05-02  本文已影响0人  ands999

RabbitMQ特点

  1. 基于erlang语言开发,因此也具有高可用、高并发的优点。
  2. 健壮、稳定。
  3. 消息确认机制和持久化机制,可靠性高。
  4. AMQP

基础架构

AMQP 里主要有两个组件:Exchange 和 Queue (在 AMQP 1.0 里还会有变动),这两者都在 Server 端,又称作 Broker ,而蓝色的则是客户端,通常有 Producer 和 Consumer 两种类型。

几个概念

Queue(消息队列),提供了FIFO的处理机制,具有缓存消息的能力。队列消息可以设置为持久化,临时或者自动删除。

Exchange(交换机),从连接通道(Channel)接收消息后,按照预置的路由规则发送到队列。一个exchange可以绑定多个queue,producer在传递消息的时候会传递ROUTING_KEY,Exchange根据ROUTING_KEY按照特定的路由算法,将消息路由到指定的queue。和Queue一样,Exchange也可设置为持久化,临时或者自动删除。
Exchange的4种类型:

每种规则用来做匹配的CPU开销是不同的,所以设置了4种交换器。

Binding(绑定),就是路由规则,告诉交换机将何种类型的消息发送到某个队列中。是将一个 Exchange 和一个 Queue 绑定起来。
virtual host(虚拟主机),在rabbitmq server上可以创建多个虚拟的message broker,又叫做virtual hosts (vhosts)。vhost本质上是mini-rabbitmq server,管理自己的exchange和bindings。vhost相当于物理的server,可以为不同app提供边界隔离,使得应用能安全的运行在不同的vhost实例上,相互之间不会干扰。producer和consumer连接rabbit server需要指定一个vhost。

消息传递过程

  1. 消费者: 创建connection。
  2. 消费者: 创建信息通道channel。
  3. 消费者: 定义消息队列queue,并设置相关属性。
  4. 消费者: 定义特定类型的交换机exchange,并设置相关属性。
  5. 消费者: 设定绑定规则 (包括交换机名称、队列名称以及路由键routing key)。
  6. 消费者: 等待消息。
  7. 生产者: 创建消息。
  8. 生产者: 将消息投递给信息通道 (注明接收交换机名称和路由键)。
  9. 交换机: 获取消息,依据交换机类型决定是否匹配路由规则 (如需匹配,则对比消息路由键和绑定路由键)。
  10. 消费者: 获取并处理消息,发送确认信息。
  11. 结束: 关闭通道和连接。
上一篇 下一篇

猜你喜欢

热点阅读