美文网首页
RabbitMQ之(一)核心概念

RabbitMQ之(一)核心概念

作者: 与乐为乐 | 来源:发表于2020-06-27 23:20 被阅读0次

RabbitMQ是一个由erlang开发的AMQP(Advanved Message Queue Protocol)的开源实现。

一、核心概念

Message
  • 消息,消息是不具名的,它由消息头和消息体组成
  • 消息头,包括routing-key(路由键)、priority(相对于其他消息的优先权)、delivery-mode(指出该消息可能需要持久性存储)等

Publisher

  • 消息的生产者,也是一个向交换器发布消息的客户端应用程序
Exchange
  • 交换器,将生产者消息路由给服务器中的队列
  • 类型有direct(默认),fanout, topic, 和headers,具有不同转发策略
Queue
  • 消息队列,保存消息直到发送给消费者
Binding

绑定,用于消息队列和交换器之间的关联

Connection

  • 网络连接,比如一个TCP连接

Consumer

  • 消息的消费者,表示一个从消息队列中取得消息的客户端应用程序

Virtual Host

  • 虚拟主机,表示一批交换器、消息队列和相关对象。
  • vhost 是 AMQP 概念的基础,必须在连接时指定
  • RabbitMQ 默认的 vhost 是 /

Broker

  • 消息队列服务器实体

二、运行机制

消息路由

AMQP 中增加了Exchange 和 Binding 的角色, Binding 决定交换器的消息应该发送到那个队列

Exchange 类型

1. direct

  • 点对点模式,消息中的路由键(routing key)如果和 Binding 中的 binding key 一致, 交换器就将消息发到对应的队列中。

2. fanout

  • 广播模式,每个发到 fanout 类型交换器的消息都会分到所有绑定的队列上去

3. topic

  • 将路由键和某个模式进行匹配,此时队列需要绑定到一个模式上。它将路由键和绑定键的字符串切分成单词,这些单词之间用点隔开。
    识别通配符: # 匹配 0 个或多个单词, *匹配一个单词

    image

相关文章

网友评论

      本文标题:RabbitMQ之(一)核心概念

      本文链接:https://www.haomeiwen.com/subject/krebfktx.html