• RabbitMQ_交换机


    简单理解交换机在RabbitMQ中扮演的角色

    交换机在RabbitMQ中扮演消息系统中枢,将从生产者处收集的消息转发至对应的消息队列处,等待消费者消费

    提前说明交换机 与 routing key 与 消息队列的关系

    channel.queueBind(queueName, exchangeName, routingKey);

    消息队列被绑定至交换机,交换机根据routing key标识并分类消息队列

    交换机的种类及对应模式

    1.fanout

    Publish/Subscribe(发布与订阅)模式交换机

    生产者向交换机中传递消息后,所有队列均会收到消息

    2.direct

    Routing(路由)模式交换机,该交换机为RabbitMQ的默认交换机

    生产者向交换机传递消息后,交换机在进行消息分发的时候,只会将该消息分发至被对应routing key标识的队列

    举例:五个队列的routing key分别为key1 key2 key3 key3 key3,那么生产者指定的routing key为key3时,队列3 4 5将收到消息,而队列1 2不会

    3.topic

    Topics(主题)模式交换机,相较前者添加了基于routing key的模糊匹配

    举例:队列1 2的routing key分别为 *.number.* 与 #.number.#

    那么:

            x.number.y 将匹配队列1 2

            .number. 将匹配队列2

            x.number. 将匹配队列2

            .number.y 将匹配队列2

    4.headers

    参数交换机

    声明队列时,可设置队列携带参数

    channel.queueDeclare(queueName, durable, exclusive, autoDelete, arguments);

    生产者传递消息时,可设置消息携带参数,参数交换机会将该消息分发至具有相同参数的队列

    channel.basicPublish(exchangeName, routingKey, prop, message.getBytes());
  • 相关阅读:
    某CCC-BASE的逆向
    常用scss函数基本使用及操作(mixin)
    v-charts
    一分钟教你们证件照如何换背景颜色,快来收藏
    SPDK线程模型
    Linux权限
    redis 多租户隔离 ACL 权限控制(redis-cli / nodejs的ioredis )
    git基础
    通过openssl非对称加密解密
    使用扩展运算符(...)合并数组
  • 原文地址:https://blog.csdn.net/Mudrock__/article/details/127937138