2-用EasyNetQ连接RabbitMQ(黄亮翻译)
如果你连接过关系数据库,例如SQL Server。你会发现EasyNetQ处理connections有点奇怪。和关系数据库通讯一直都是通过client开始的。Client 打开一个连接, 发出一个SQL命令,如有必要时,处理结果,然后关闭连接。一般建议是你维持一个打开的连接,时间要尽可能短,通过API断开连接池。
诸如与RabbitMQ这样的消息代理会话,是有些不同的,因为连接倾向于在应用的整个生命周期内保持连接状态。通常你打开一个连接,创建一个订阅,然后打开连接后,等待消息到来。EasyNetQ不能保证代理在所有的时间都是可用的。相反它使用了延迟连接的方法,在后台线程轮询终结点,直到连接成功。假如服务器出于任何原因连接断开了(可能是网络故障,或许是RabbitMQ Server自身的原因断开了),EasyNetQ将恢复轮询终结点直到重新连接成功。
标准的做法是在你应用的生命周期内只创建一个IBus实例.当你的应用关闭后Dispose掉它。
延迟连接到RabbitMQ服务器是通过IBus接口表示的。大部分EasyNetQ操作都是IBus上的方法。创建一个IBus实例如下:
var bus = RabbitHutch.CreateBus("host=myServer;virtualHost=myVirtualHost;username=mike;password=topsecret")
这个连接字符串是由键值对组成,格式如下 key=value, 通过分号;分隔。只有一个必选的字段是host.可能的连接字符串值是:
host(例如 host=localhost 或 host=192.168.2.56 或 host=myhost.mydomain.com)这个字段是必选的。如要具体指定你要连接服务器端口,你用标准格式 host:port(例如:host=myhost .com:5673)。假如你省略了端口号,AMQP默认端口是5672.连接到RabbitMQ集群,需要指定每一个集群节点用逗号分隔(例如:host:myhost1.com,myhost2.com,myhost3.com).更多详情请参考Cluster Support
virtualhost(例如:virtualHost=myVirturalHost)默认虚拟主机是'/'
username(例如:username=mike)默认是'guest'(对于非'localhost'主机你需要使用其他用户名)
password (例如:password=mysecret)默认为'guest'
requestedHearbeat(例如:requestHearbeat=10)默认为10秒钟。没有心跳设置为0
prefetchcount(例如:prefetchcount=1) 默认为50.这个值是在EasyNetQ发送ack之前发送给RabbitMQ的消息数。不限制设置为0(不推荐). 为了在消费者之间保持公平和平衡设置为1.
publisherConfirms(例如:publisherconfirms=true)默认是false。 如何开启Publisher Confirms?
persistentMessages(例如:persistentMessages=false)默认为true。这个决定了在发送消息时采用什么样的delivery_mode。 false=1,true=2. 设置为true,RabbitMQ将会把消息持久化到磁盘,并且在服务器重启后仍会存在。设置为false可以提高性能收益。
product(例如:product=我的现实中重要的服务)在EasyNetQ 0.27.3中被引进。默认值是Bus的实例名。
此处输入的值将显示在RabbitMQ的后台管理界面中。platform(例如:platform=my.fully.qualified.domain.name)在EasyNetQ 0.27.3中被引进。默认值是运行着客户端处理Bus的实例的机器的主机名。此处输入的值将会线上在RabbitMQ管理端界面中。
timeout(例如:timeout=60)模式值为10秒。在EasyNet 0.17中被引进。可解析类型为System.UInt16从0到65535范围内的值。不限制超时时间设置为0.当超时事时抛出System.TimeoutException.
关闭连接,只要简单的dispose,如下:
bus.Dispose();
这样就关闭了EasyNetQ使用过的连接、管道、消费者和所有其他资源。
原文地址:https://github.com/EasyNetQ/EasyNetQ/wiki/Connecting-to-RabbitMQ
2-用EasyNetQ连接RabbitMQ(黄亮翻译)的更多相关文章
- 3-在EasyNetQ上使用SSL连接(黄亮翻译)
EasyNetQ可以通过SSL进行连接.这篇指南的作者Gordon Coulter最初为回应一个提问写的. 首先,你必须仔细依据https://www.rabbitmq.com/ssl.html文章中 ...
- 转载 1-EasyNetQ介绍(黄亮翻译) https://www.cnblogs.com/HuangLiang/p/7105659.html
EasyNetQ 是一个容易使用,坚固的,针对RabbitMQ的 .NET API. 假如你尽可能快的想去安装和运行RabbitMQ,请去看入门指南.EasyNetQ是为了提供一个尽可能简洁的适用与R ...
- 1-EasyNetQ介绍(黄亮翻译)
EasyNetQ 是一个容易使用,坚固的,针对RabbitMQ的 .NET API. 假如你尽可能快的想去安装和运行RabbitMQ,请去看入门指南. EasyNetQ是为了提供一个尽可能简洁的适用与 ...
- 4-EasyNetQ之Logging(黄亮翻译)
EasyNetQ提供了一个Logger接口 IEasyNetQLogger: public interface IEasyNetQLogger { void DebugWrite(string for ...
- 5-EasyNetQ之Publish(黄亮翻译)
EasyNetQ支持的最简单的消息模式是发布/订阅.这个模式是一个极好的方法用来解耦消息提供者和消费者.消息发布者只要简单的对世界说,"这里有些事发生" 或者 "我现在有 ...
- 远程连接RabbitMQ失败
远程连接RabbitMQ失败 为了避免污染宿主系统环境,于是在虚拟机中搭建了一个linux环境并且按照了rabbitmq-server.然后在远程连接的时候一直连接失败. 官网上面给的例子都是在本地使 ...
- 使用EasyNetQ简化RabbitMQ操作
关于具体的操作看查看官方文档:https://github.com/EasyNetQ/EasyNetQ 也可以参考中文翻译版本:http://www.cnblogs.com/HuangLiang/p/ ...
- [转载]PHP 连接 Rabbitmq 实例代码
转自 http://www.dahouduan.com/2017/11/23/php-rabbitmq-demo/ 接下来我们用 php 连接 rabbitmq 玩一玩.还没有安装 rabbitmq ...
- 【js学习】js连接RabbitMQ达到实时消息推送
js连接RabbitMQ达到实时消息推送 最近在自己捯饬一个网站,有一个功能是需要后端处理完数据把数据发布到MQ中,前端再从MQ中接收数据.但是前端连接MQ又成了一个问题,在网上搜了下资料,点进去一篇 ...
随机推荐
- R中用黏贴板读取excel数据以及用R生成人名
本人尚在超级菜鸟级别,中间有些代码写的很low,请不要见笑! 1.今天先跟大家分享一个小技巧,用黏贴板将excel中的数据读进R 首先选中要读入R的数据 如图,上面是我分析的病人相关资料,Ctrol+ ...
- 使用Windows Server 2012+ 搭建VPN 简单 高效 稳定
前几天,在机缘巧合之下,买到了一台性能配置一般的腾讯云服务器(香港的),因为性能比较差,没啥太大用途,就想着试试搭建一个VPN,后来,经过多次尝试和查资料,总结出了一套几乎100%成功的教程,现在拿来 ...
- 基于docker的 Hyperledger Fabric 多机环境搭建(上)
环境:ubuntu 16.04 Docker 17.04.0-ce go 1.7.4 consoul v0.8.0.4 ======================================= ...
- Android界面(1) 使用TextView实现跑马灯效果
方法一:(只能实现单个TextView的跑马灯效果)在TextView添加以下控件 android:singleLine="true"只能单行,超出的文字显示为"...& ...
- 基于C#的接口自动化测试(二)
Json多重数据处理方法II:jobj直接向后调用即可 ]["GoodsName"]; 用:分隔的字符串转字典: public static Dictionary<strin ...
- ue4玄学画面设置实现
pc端项目临近发布之时,免不了向玩家提供一些自订选项,以适应各自的习惯和机能,画面设置就是必要的一环. 主要的画面选项有: 1.全屏/窗口化 2.分辨率 3.视野距离 4.抗锯齿 5.后期处理 6.阴 ...
- Cordova各个插件使用介绍系列(四)—canvas2ImagePlugin保存二维码到手机本地
详情链接地址:http://www.ncloud.hk/%E6%8A%80%E6%9C%AF%E5%88%86%E4%BA%AB/cordova-4-canvas2imageplugin/ 在前面几篇 ...
- DB2简介和安装部署
一.DB2相关概念 1.DB2体系结构: DB2体系结构中的最高一层是系统,一个系统表示DB2的一个安装.在由很多机器组成 的网络环境中,我们有时=也称系统为数据库分区,一个系统可以包含多个DB2实例 ...
- JavaScript事件与例子(三)
两个例子,好友选中效果和左侧右侧子菜单 一.好友选中效果 可以通过设置属性的方式判断当前是否被选中,也可以通过获取当前元素的颜色从而得知当前元素状态是否被选中,从而进行操作 1.通过设置属性的方式判断 ...
- css3自适应圆
.class{ width:auto; height:auto; border-radius:11px; min-width:14px; padding:0 4px; font-size:12px; ...