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之控制队列名称的更多相关文章

  1. 【EasyNetQ】- 控制队列名称

    在为队列生成名称时,EasyNetQ的默认行为是使用消息类型名称并将其附加到订阅ID.例如PartyInvitation,命名空间中的消息类型EasyNetQ.Tests.Integration将使用 ...

  2. EasyNetQ使用(五)【基于主题的路由,控制队列名称】

    RabbitMQ有一个很酷的功能,基于主题的路由,这个功能允许订阅者基于多个条件去过滤消息.一个主题是由点号分隔的单词列表,随消息一同发布.例如:“stock.usd.nyse” 或 “book.uk ...

  3. 7,EasyNetQ-控制队列名称

    EasyNetQ在为队列生成名称时的默认行为是使用   消息类型名称+subscription Id 例如,名称空间EasyNetQ.Tests.Integration中的PartyInvitatio ...

  4. Linux网络服务10——远程访问及控制

    Linux网络服务10--远程访问及控制 一.SSH概述 1.SSH简介 SSH(Secure Shell)是一种安全通道协议,主要用来实现字符界面的远程登录.远程复制等功能.SSH协议对通信双方的数 ...

  5. NServiceBus 更换服务名及队列名称

    可以通过起动时的参数处理 NServiceBus.Host.exe /serviceName:”服务名称” /endpointName:”默认队列名称”

  6. Dynamics 365 We API ODATA语法根据父记录查询子记录,根据子记录查询父记录(附上根据团队,队列名称查成员)

    微软动态CRM专家罗勇 ,回复333或者20190508可方便获取本文,同时可以在第一间得到我发布的最新博文信息,follow me! 先举个N:N关系的例子.这里以根据团队的名称查找其所有团队成员的 ...

  7. 深入浅出 Java Concurrency (25): 并发容器 part 10 双向并发阻塞队列 BlockingDeque[转]

    这个小节介绍Queue的最后一个工具,也是最强大的一个工具.从名称上就可以看到此工具的特点:双向并发阻塞队列.所谓双向是指可以从队列的头和尾同时操作,并发只是线程安全的实现,阻塞允许在入队出队不满足条 ...

  8. linux第10天 msg消息队列

    cat /proc/sys/kernel/msgmax最大消息长度限制 cat /proc/sys/kernel/msgmnb消息队列总的字节数 cat /proc/sys/kernel/msgmni ...

  9. 10.并发包阻塞队列之ArrayBlockingQueue

    上一节中对并发包中的非阻塞队列ConcurrentLinkedQueue的入队.出队做了一个简要的分析,本文将对并发包中的阻塞队列做一个简要分析. Java并发包中的阻塞队列一共7个,当然他们都是线程 ...

随机推荐

  1. JavaScript中url 传递参数(特殊字符)解决方法及转码解码的介绍

    有些符号在URL中是不能直接传递的,如果要在URL中传递这些特殊符号,那么就要使用他们的编码了.下表中列出了一些URL特殊符号及编码   十六进制值 1. + URL 中+号表示空格 %2B 2. 空 ...

  2. 模拟form提交数据

    最近在做一个项目,发现ajax不能enctype=”multipart/form-data” 属性的表单,没办法,只能使用form表单直接提交的方法了,但是form表单直接提交会跳转页面,这样很不友好 ...

  3. NAVagationController

    UINavigationController为导航控制器,在iOS里经常用到. 1.UINavigationController的结构组成 UINavigationController有Navigat ...

  4. Python编码错误的解决办法SyntaxError: Non-ASCII character '\xe5' in file

    [现象] 在编写Python时,当使用中文输出或注释时运行脚本,会提示错误信息: SyntaxError: Non-ASCII character '\xe5' in file ******* [原因 ...

  5. Compiling OpenGL games with the Flash C Compiler (FlasCC)

    Compiling OpenGL games with the Flash C Compiler (FlasCC) In this article I show how to use the Flas ...

  6. POJ1160 Post Office (四边形不等式优化DP)

    There is a straight highway with villages alongside the highway. The highway is represented as an in ...

  7. SSH项目配置数据源的方法(jndi)

    1.在tomcat6.0/conf/context.xml加入以下代码 [xhtml] view plain copy     <Resource name="jdbc/oracleD ...

  8. 十大Java人物

    James Gosling : Java之父文/陶文 作 为Java之父,James Gosling的名字可谓是耳熟能详.当人们评论一种编程语言时,总喜欢捎带着把下蛋的母鸡一起带上.Java做为中国的 ...

  9. IDC单IP绑定多域名(包括端口)

    本文件已上传到文件列表中. ServerName 222.186.36.116:80 DocumentRoot "/home" <Directory "/home& ...

  10. 在laravel中使用支付宝手机网站支付 和 支付宝退款

    1.在蚂蚁金服开放平台中申请对应的应用,并根据提示进行签约 2.给对应的应用信息 生成私钥和公钥(私钥会保存在本地,公钥会放在对应的应用信息中) 3.下载手机网站支付 对应的php sdk 4.将sd ...