zoukankan      html  css  js  c++  java
  • fanout扇形交换机发布/订阅(Pub/Sub)

    交换机的广播类型fanout,广播类型不需要routingKey,交换机会将所有的消息都发送到每个绑定的队列中去。

    在发布消息时可以只先指定交换机的名称,交换机的声明的代码可以放到消费者端进行声明,队列的声明也放在消费者端来声明。

    发布订阅类似观察者模式设计模式,一般适用于当接收到某条消息时同时做多种类似的任务的处理,扇形交换机将消息传送给不同的队列,不同的队列对同一种消息采取不同的行为。

    扇形交换机是最基本的交换机类型,它所能做的事情非常简单———广播消息。扇形交换机会把能接收到的消息全部发送给绑定在自己身上的队列。因为广播不需要“思考”,所以扇形交换机处理消息的速度也是所有的交换机类型里面最快的。

    生产者:

    // 生产者不需要队列声明,也不需要声明交换机,只需要指定交换机的名称即可,队列和交换机的声明可以在消费者中声明
    // 注意广播模式不需要routingKey, 可以写成""

    channel.basicPublish(EXCHANGE_NAME, "", null, message.getBytes("UTF-8"));

    消费者:

    // 声明交换机:指定交换机的名称和类型(广播:fanout)
    channel.exchangeDeclare(EXCHANGE_NAME, "fanout");
    // 在消费者端队列绑定
    channel.queueBind(QUEUE_NAME, EXCHANGE_NAME, "");

  • 相关阅读:
    MyBatis动态SQL
    Mybatis基础配置
    MyBatis的手动映射与模糊查询
    Struts2框架和SpringMvc框架的区别
    Mybatis和Hibernate框架的区别
    Servlet
    JSP数据交互(二)
    JSP数据交互(一)
    Spark朴素贝叶斯(naiveBayes)
    【安卓开发】Android为什么选择binder
  • 原文地址:https://www.cnblogs.com/wueryuan/p/12807293.html
Copyright © 2011-2022 走看看