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下右键打开命令行,运行
.\rabbitmq-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);
EasyNetQ WithTopic过滤失效的解决方案的更多相关文章
- jQuery的live绑定事件在mobile safari(iphone / ipad / ipod)上失效的解决方案
jQuery的live绑定为什么会在mobile safari上失效呢?其实可以追溯到jQuery里live的实现方式.live的实现方式实际上是通过事件委托机制来实现的,也就是说是通过诸如冒泡的方式 ...
- Linux配置完iptables后,重启失效的解决方案
Linux配置完iptables后,重启失效的解决方案 因为只有root用户才可访问1024以下的端口,非root用户登陆是不能启用80端口的.web service 往往启动1024以上的端口,并通 ...
- VS2019打开旧项目导致引用失效的解决方案
用VS2019打开VS2015创建的MVC项目时所有引用全部失效: 解决方案: 打开项目的csproj文件,删除 Target节点,在重新打开项目. <Target Name="Ens ...
- 关于YiII框架的扩展memcache中set设置时间就get查询失效的解决方案(版本是1.1.20)
0x01 前言 在使用Yii框架的扩展memcache缓存的时候,存储数据有一个set方法,来看一下set方法的原型: public boolean set(string $id, mixed $va ...
- jquery tablesorter 动态加载数据时,排序。过滤失效解决方案
解决方案:重置更新: $("table").trigger("update"); 1 官方 ajax表格数据添加实例: $(document).ready(fu ...
- easyui tabs update后tab上关闭图标失效的解决方案
问题:使用easyui的tabs组件的时候,调用了tab的update方法,更新后的tab标签上的关闭图标失效 使用的js文件是1.3版本的jquery.easyui.min.js文件,通过读源文件发 ...
- MVC5 Bundles发布到IIS失效问题解决方案
MVC中Bundles可以提高代码的可重用性 我每个页面都需要用到这十几个JS+CSS 当我把MVC发布到服务器以后,Bundles中的JS和CSS会失效的时候 宝宝的心里是崩溃的.... 查了很多资 ...
- FF中flash滚轮失效的解决方案
概述 在FF浏览器中有这样一个bug,就是当鼠标hover在flash区域的时候,滚轮会失效.原因是ff浏览器没有把滚轮事件嵌入到flash里面去.如果这个flash很小的话,比如直播的视频,会很容易 ...
- 关于IOS下click事件委托失效的解决方案
一.由于某些特殊情况下,需要用到事件委托,比如给动态创建的DOM绑定click事件,这里就需要事件委托(这里就牵扯到:目标元素和代理元素)目标元素:动态创建的元素,最终click事件需要绑定到该元素 ...
随机推荐
- Linux服务器上安装MySql数据库(默认安装,密码为空),首次使用需要修改密码
1,在/etc/my.cnf末尾 加入skip-grant-tables,保存,跳过身份验证. 2,重启MySql,使刚才修改的配置生效. 3,终端输入mysql,然后再输入use mysql; 4 ...
- Java中的return关键字
Java常见面试题之一: try {}里有一个return语句,那么紧跟在这个try后的finally {}里的code会不会被执行,什么时候被执行,在return前还是后? 请看下面程序就可以解释 ...
- hdu1995 汉诺塔V
可以直接把前K-1个罗盘全部忽略了,因为移动前K-1个罗盘不会影响第K个. 也就是相当于只移动剩下的n-k-1个罗盘,当只移动第k个罗盘时,f(k)=1;当要哟东第k个和第k+1个时,就必须先把第k个 ...
- python file文件操作--内置对象open
说明: 1. 函数功能打开一个文件,返回一个文件读写对象,然后可以对文件进行相应读写操作. 2. file参数表示的需要打开文件的相对路径(当前工作目录)或者一个绝对路径,当传入路径不存在此文件会报错 ...
- JavaScript基础教程1-20160612
1.javascript是一门浏览器运行的脚本语言和java没关系 2.javascript语言写在哪里? (1)可以写单独的文件里面去调用(推荐采用此方法) index.html <head& ...
- Lua Table转C# Dictionary
因为在游戏公司做web后台开发,经常会涉及到取游戏服务器的数据库里面读写各种操作. 昨天下午,服务器那边让我读一个配置显示到后台,让运营大佬们可以在web后台配置游戏参数. 本来以为很简单个事情,结果 ...
- Json序列化、反序列化
引用 using Newtonsoft.Json; using Newtonsoft.Json.Converters; 把Json字符串反序列化为对象 1.目标对象 = JavaScriptConve ...
- wpf通过VisualTreeHelper找到控件内所有CheckBox和TextBox并做相应绑定
#region CheckBox与TextBox绑定 Dictionary<CheckBox, TextBox> CheckTextBoxDic = new Dictionary<C ...
- Linux(二)命令
Linux命令一.命令基本格式 命令行头部显示字符意义 [root@localhost ~] # root 用户名 localhost 主机名 ~ 当前目录 ~表示home目录 # 用户权限,#表示超 ...
- SQL Server使用侦听器IP访问时遇到"The target principal name is incorrect. Cannot generate SSPI context"
在测试SQL Server 2016 Always On时,在创建侦听器后,在客户端使用SSMS, 可以用侦听器名称访问Always On集群,但是使用侦听器IP访问时遇到"The targ ...