zoukankan      html  css  js  c++  java
  • AMQP

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

    1. 核心概念

    • Message

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

      • 消息的生产者,也是一个向交换器发布消息的客户端应用程序
    • Exchange

      • 交换器,将生产者消息路由给服务器中的队列
      • 类型有direct(默认),fanout, topic, 和headers,具有不同转发策略
    • Queue

      • 消息队列,保存消息直到发送给消费者
    • Binding

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

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

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

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

      • 消息队列服务器实体

    2. 运行机制

    消息路由

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

    Exchange 类型

      1. direct

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

      2. fanout

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

      3. topic

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

  • 相关阅读:
    SpringBoot
    JS
    域渗透之NTLM Relay
    域渗透之 pre-auth用户枚举
    mysql 必知必会整理—sql 正则表达[五]
    mysql 必知必会整理—sql 简单语句[二]
    redis 简单整理——缓存设计[三十二]
    mysql 必知必会整理——mysql 介绍[一]
    redis 简单整理——哨兵原理[三十一]
    redis 简单整理——客户端哨兵模式[三十]
  • 原文地址:https://www.cnblogs.com/buxiu/p/13816729.html
Copyright © 2011-2022 走看看