zoukankan      html  css  js  c++  java
  • EasyNetQ WithTopic过滤失效的解决方案

    RabbitMQ原理及教程:http://www.cnblogs.com/AlvinLee/p/6141834.html

    EasyNetQ是什么以及常见用法这里都不做讲解。可以参考这篇博文:http://blog.csdn.net/hesi9555/article/details/70139346

    这里主要来谈谈EasyNetQ中WithTopic方法中的一个容易浪费大量时间的点。

    使用EasyNetQ的Subscribe方法后,再使用SubscribeWithTopic方法,你可能会发现无论Routing Key(SubscribeWithTopic中的第三个参数)写什么东西都没用,不管你的Routing key和发送者的Routing Key一样或者不一样,接收者统统都能收得到,即WithTopic的过滤功能失效了。这是为什么呢?

    这时候,只要你打开RabbitMQ的web管理后台的队列面板,

    (http://localhost:15672/#/queues ,开不了的去rabbitmq-server的安装目录的sbin下右键打开命令行,运行 

    .
    abbitmq-plugins.bat enable rabbitmq_management

    来启动web管理后台。)

    点开新创建出来的队列,点开bindings下拉菜单,如果你看到Routing key这一栏的第一项是“#”,意味着之后添加的所有Routing key都失效了。#代表接受所有。每次运行Subscribe都会自动加上“#”过滤规则并且置顶。

    解决方案有:

    1、手动删除。"#"那一项点击unbind按钮即可。之后如果使用了Subscribe后还想改成SubscribeWithTopic就必须再手动删一次

    2、利用代码删除。

                var bus = RabbitHutch.CreateBus(connectionString);
    IAdvancedBus advancedBus = bus.Advanced; IBinding bind = advancedBus.Bind(new Exchange("Model.Message:Model(交换机名)"), new Queue("Model.Message:Model_id1(队列名)",false), "#" ); advancedBus.BindingDelete(bind);
  • 相关阅读:
    云? 云! 晕! 云计算适合创业公司么?
    批量转移Windows Server的DNS设置
    Signs that you are a bad programmer
    IsNull Function in PeopleSoft MetaSQL
    JS绘制曲线图
    Why does my shared clipboard not work?
    C#入门详解(2)
    C#入门详解(1)
    分享范玮琪最初的梦想
    像战士一样生活
  • 原文地址:https://www.cnblogs.com/axel10/p/8544619.html
Copyright © 2011-2022 走看看