Message - RabbitMQ - AMQP

  • RabbitMQ 使用AMQP 协议, AMQP 是 Advanced Message Queuing Protocol 的缩写;
  • AMQP 这个网络协议, 称消息中间件为 Broker. Broker 从 producer/publisher 接收消息, 然后 route 到特定的 consumer/Subscriber
  • AMQP 的模型简图
    请输入图片描述
  • AMQP 的 broker 内部的概念有: exchange, route, queue, binding, routeKey, exchange type, ack, confirm.
  • 当一个Message 不能被 route 的时候, Broker 可以返回给 producer, 或者丢弃, 或者扔到一个特殊的队列.
  • AMQP 是一个 programable(可编程) 的协议, 是因为, client 可以定义声明 exchange, queue, binding, 而不是Administer 在 server 上定义. 同时可能出现的问题是: 定义冲突.
  • AMQP 定义了4种 exchange type: direct, fanout, topic, header. Borker route 算法根据 exchange 类型和 binding 有不同.
  • AMQP 的 Connection 是典型的长连接. 一个连接内建立多个 Channel.
  • 一个 AMQP 的 broker 可以 host 多个分开的环境, 每个环境称之为一个 virtual host

标签: none

添加新评论