• RabbitMQ


    RabbitMQ中相关名词

    Producer:生产者创建消息,发布到RabbitMQ中,消息包含 消息体 和 标签(交换器名称+路由键)

    Consumer:消费者连接到RabbitMQ服务器,并订阅到队列上,消费者会消费消息的消息体

    Broker:服务节点,大多数情况可以把一个RabbitMQ Broker看作一台RabbitMQ服务器

    Queue:队列,RabbitMQ的内部对象,用于存储信息。多个消费可以订阅同一个队列,但消息会被平均分摊,而不是每个消费者都会受到所有的消息

    Exchange:交换器,生产者将消息发送到交换器,交换器将消息路由到一个或者多个队列中

    RoutingKey:路由键,生产者将消息发给交换器的时候会指定一个路由键,用来指定路由规则

    Binding:绑定,RabbitMQ通过绑定将交换器与队列关联起来,绑定时会指定BindingKey

    Connection:连接,生产者或消费者和Broker之间的一条TCP连接

    Channel:信道,建立在Connection上的虚拟连接,每条AMQP指令都通过信道完成


    交换器类型

    fanout:把所有发送到该交换器的消息路由到所有与该交换器绑定的队列中

    direct:把消息路由到BindingKey和RoutingKey完全匹配的队列中

    topic:把消息路由到BindingKey和RoutingKey相匹配的队列中

    headers:根据发送消息内容中的headers进行匹配,性能比较差


     运转流程

    生产者发送消息

    1 生产者连接到 RabbitMQ Broker,建立一个连接(Connection),开启一个信道(Channel)
    2 生产者声明一个交换器,并设置相关属性(交换机类型、持久化)
    3 生产者声明一个队列,并设置相关属性(排他、持久化、自动删除)
    4 生产者通过路由键将交换器和队列绑定起来
    5 生产者发消息至RabbitMQ Broker(包含路由键、交换器信息)
    6 相应的交换器根据接收到的路由键查找相匹配的队列
    7 若找到队列,则把消息存入;若没有,则丢弃或者回退给生产者
    8 关闭信道
    9 关闭连接


    消费者接收消息

    1 消费者连接到 RabbitMQ Broker ,建立一个连接(Connection),开启一个信道(Channel)
    2 消费者向 RabbitMQ Broker 请求消费对应队列中的消息
    3 等待 RabbitMQ Broker 回应并投递相应队列中的消息,消费者接收消息
    4 消费者确认(ack)接收到的消息
    5 RabbitMQ 从队列中删除相应已经被确认的消息
    6 关闭信道
    7 关闭连接
     

     https://blog.csdn.net/hellozpc/article/details/81436980

    https://www.cnblogs.com/vipstone/p/9368106.html


    原文链接:https://blog.csdn.net/Francis123580/article/details/82560285

    https://www.cnblogs.com/cwp-bg/p/8399638.html

    https://blog.csdn.net/hellozpc/article/details/81436980

  • 相关阅读:
    Linux设置静态IP
    jenkins+findbugs
    CentOS 6.6 安装 Node.js
    未来物联网、人工智能无法迈过的技术是什么
    未来物联网、人工智能无法迈过的技术是什么
    spss-数据清洗-处理重复数据
    spss-数据清洗-处理重复数据
    大数据时代数据管理方式研究
    大数据时代数据管理方式研究
    Excel表格文本格式的数字和数字格式如何批量转换
  • 原文地址:https://www.cnblogs.com/dingpeng9055/p/11446584.html
Copyright © 2020-2023  润新知