zoukankan      html  css  js  c++  java
  • RabbitMQ (基础知识)

    AMQP简介

    AMQP(Advanced Message Queue )即:高级消息队列协议;,是应用层协议的一个开放标准,为面向消息的中间件设计;高级消息队列协议使得遵从该规范的客户端应用和消息中间件服务器的全功能互操作成为可能。

    RabbitMQ简介

    1. RabbitMQ是一个用Erlang编写的针对AMQP的开源项目,属于一个流行的开源消息队列系统
    2. RabbitMQ 支持持久化
    3. RabbitMQ 支持高可用

    RabbitMQ的官网:http://www.rabbitmq.com

    基础概念

    Broker:简单来说就是消息队列服务器实体。
    Exchange:消息交换机,他指定消息按什么规则,路由到那个队列
    Queue:消息队列载体,每个消息都会被投入到一个或多个队列
    Binding:绑定,就是把exchange和queue连接在一起,
    vhost:虚拟主机,一个broker里可以开设多个vlhost,用作不同的权限分离
    producer:消息生产者,就是投递消息的程序
    consumer:消息的消费者,就是接受消息的程序
    channel:消息通道,在客户端的每个连接里,可以建立多个channel,每个channel代表一个会话任务

    RabbitMQ工作流程

    1. producer 客户端 产生message
    2. producer客户端 连接到服务器broker,创建一个channel
    3. producer客户端 声明一个exchange,并设置相关属性(如:Routing key等)
    4. bingding 将Exchange和Queue的绑定并同时指定一个Binding Key
    5. exchnge 根据Routing key,binding key,Exchange Type 为message 选定 Queue
    6. consumer客户端监听并 收到message

    Exchange Type规则表

    类型名称 类型描述
    Direct Exchange Point-to-Point 消息模式,消息点对点的通信模式,
    Direct Exchange 根据 Routing Key 进行精确匹配,
    只有对应的 Message Queue 会接受到消息
    Topic Exchange Publish-Subscribe(Pub-sub)消息模式,
    Topic Exchange 根据 Routing Key 进行模式匹配,
    只要符合模式匹配的 Message Queue 都会收到消息
    Fanout Exchange 广播消息模式,
    Fanout Exchange 将消息转发到所有绑定的 Message Queue
    headers Exchange 不依赖于routing key与binding key的匹配规则来路由消息,
    而是根据发送的消息内容中的headers属性进行匹配。

    参考文章:https://www.cnblogs.com/cloudhere/p/10673654.html
    推荐文章:
    https://www.ibm.com/developerworks/cn/cloud/library/1403_renmm_opestackrpc/


  • 相关阅读:
    在为知笔记中使用JQuery
    解决Wireshark安装Npcap组件失败
    SSL/TLS抓包出现提示Ignored Unknown Record
    Metasploit中aggregator插件无法使用
    Metasploit运行环境内存不要低于2GB
    如何查看抓包文件所使用的捕获过滤器
    Nvidia的CUDA库现在恢复使用了
    Metasploit远程调用Nessus出错
    Nessus更新到8.3.0
    Kali Linux安装字典StarDict
  • 原文地址:https://www.cnblogs.com/du-z/p/11254173.html
Copyright © 2011-2022 走看看