10-EasyNetQ之控制队列名称
EasyNetQ默认行为,当生成队列的名称时,使用消息类型名+subscription Id。例如:PartyInvitation 这个消息类型,命名空间为 EasyNetQ.Tests.Integration,生成的队列名称为: EasyNetQ.Tests.Integration.PartyInvitation:EasyNetQ.Tests_schedulingTest1,这里假设subscription Id为 schedulingTest1.
控制队列名称
控制队列名称,用Queue attribute 在消息类上去注释。
[Queue("TestMessagesQueue", ExchangeName = "MyTestExchange")]
public class TestMessage
{
public string Text { get; set; }
}
// ...
bus.Subscribe<TestMessage>(string.Empty,
msg => Console.WriteLine(msg.Text));
这里我们告诉EasyNetQ要用TestMessagesQueue作为队列名,用MyTestExchange作为交换机名字。注意:传给Subscribe方法的subscriptionsId参数为空。假如你指定了subscriptionId,那么subscriptionId将会追加到队列名的后面。
让不是通过EasyNetQ发布的消息运作起来
使用QueueAttribute允许消费来至于任何队列的消息。这可以用来消费来至于其他非EasyNetQ的框架发布的消息,只要满足一个条件:队列中消息有type属性设置。type 属性值被用在序列化消息时去决定消息的类型。只要这个属性设置为一些有意义的,这个消息就可以被消费。解码type名是在ITypeNameSerializer.Deserialize方法中做的。
如果你决定用自己的ITypeNameSerializer实现,那么要小心你如何去执行反序列化方法,假如你的实现是CPU计算密集型的,那么是危险的会限制你出队消息的速度。比如,程序集扫描没有类型缓存是一个坏主意。
命名队列注意事项
设置队列名称为空字符串将会使用默认命名规则。队列名最大255个字符(这是RabbitMQ client 类库强制规定)。队列名称可以是字母,数字,-,下划线_,点号.,或冒号:。队列名称以“amq.”开头,是预留的,为了预定义和标准化队列。
英文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Controlling-Queue-names
本文地址:http://www.cnblogs.com/HuangLiang/p/EasyNetQ_Controlling_Queue_names.html
10-EasyNetQ之控制队列名称的更多相关文章
- 【EasyNetQ】- 控制队列名称
在为队列生成名称时,EasyNetQ的默认行为是使用消息类型名称并将其附加到订阅ID.例如PartyInvitation,命名空间中的消息类型EasyNetQ.Tests.Integration将使用 ...
- EasyNetQ使用(五)【基于主题的路由,控制队列名称】
RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息.一个主题是由点号分隔的单词列表,随消息一同发布.例如:“stock.usd.nyse” 或 “book.uk ...
- 7,EasyNetQ-控制队列名称
EasyNetQ在为队列生成名称时的默认行为是使用 消息类型名称+subscription Id 例如,名称空间EasyNetQ.Tests.Integration中的PartyInvitatio ...
- Linux网络服务10——远程访问及控制
Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数 ...
- NServiceBus 更换服务名及队列名称
可以通过起动时的参数处理 NServiceBus.Host.exe /serviceName:”服务名称” /endpointName:”默认队列名称”
- Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)
微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 先举个N:N关系的例子.这里以根据团队的名称查找其所有团队成员的 ...
- 深入浅出 Java Concurrency (25): 并发容器 part 10 双向并发阻塞队列 BlockingDeque[转]
这个小节介绍Queue的最后一个工具,也是最强大的一个工具.从名称上就可以看到此工具的特点:双向并发阻塞队列.所谓双向是指可以从队列的头和尾同时操作,并发只是线程安全的实现,阻塞允许在入队出队不满足条 ...
- linux第10天 msg消息队列
cat /proc/sys/kernel/msgmax最大消息长度限制 cat /proc/sys/kernel/msgmnb消息队列总的字节数 cat /proc/sys/kernel/msgmni ...
- 10.并发包阻塞队列之ArrayBlockingQueue
上一节中对并发包中的非阻塞队列ConcurrentLinkedQueue的入队.出队做了一个简要的分析,本文将对并发包中的阻塞队列做一个简要分析. Java并发包中的阻塞队列一共7个,当然他们都是线程 ...
随机推荐
- Centos6.8 JDK配置
记录一下在这个服务器配置的过程 ssh root@IP Password --------------------------------------------------------------- ...
- Python基础学习(第2天)
第三课:序列(sequence) 1.序列是一种有顺序的元素的集合 序列可以包含1个或多个元素,也可以不包括任何元素: 序列中的元素可以是[基础数据类型]中任一种,也可以是[别的序列]. s1 = ( ...
- SVN 的搭建及使用(二)VisualSVN Server建立版本库,以及VisualSVN和TortoiseSVN的使用
上一篇介绍了VisualSVN Server和TortoiseSVN的下载,安装,汉化.这篇介绍一下如何使用VisualSVN Server建立版本库,以及VisualSVN和TortoiseSVN的 ...
- [Scala]Scala学习笔记二 数组
1. 定长数组 如果你需要一个长度不变的数组,可以使用Scala中的Array. val nums = new Array[Int](10) // 10个整数的数组 所有元素初始化为0 val str ...
- ng $http 和远程服务器通信的一个服务。
$http({url:'',method:''}).success().error() 简洁写法:$http.get()$http.post()... 注意事项:①要求返回的数据格式是json格式②在 ...
- I.MX6 give su command more permission
/************************************************************************************ * I.MX6 give s ...
- netcat 瑞士军刀
netcat被誉为网络安全界的‘瑞士军刀’,一个简单而有用的工具,透过使用TCP或UDP协议的网络连接去读写数据.它被设计成一个稳定的后门工具,能够直接由其它程序和脚本轻松驱动.同时,它也是一个功能强 ...
- 转:使用django-admin.py创建django工程
原文:http://blog.csdn.net/a921800467b/article/details/8257352 安装Django首先需要安装数据库,可选的数据库有好几种,我选择的是MySQL数 ...
- mysql5.6.11安装
下面详细介绍5.6版本MySQL的下载.安装及配置过程. 图1.1 MySQL5.6 目前针对不同用户,MySQL提供了2个不同的版本: Ø MySQL Community Serve ...
- IDEA生成serialVersionUID的警告
默认情况下Intellij IDEA是关闭了继承了java.io.Serializable的类生成serialVersionUID的警告.如果需要ide提示生成serialVersionUID,那么需 ...