如果您习惯于处理与SQL Server等关系数据库的连接,那么您可能会发现EasyNetQ处理连接的方式有点奇怪。与关系数据库的通信始终由客户端启动。客户端打开连接,发出SQL命令,在必要时处理结果,然后关闭连接。一般的建议是,您应该在尽可能短的时间内保持打开连接,并将连接池保留给API。

与RabbitMQ等消息代理进行交谈有点不同,因为连接往往会持续应用程序的生命周期。通常,您将打开连接,创建订阅,然后等待任何消息到达打开的连接。EasyNetQ不假设经纪人随时可用。相反,它采用延迟连接方法,在后台线程上轮询给定端点,直到它可以连接。如果服务器因任何原因(可能是网络故障,可能是RabbitMQ服务器本身已被退回)而断开连接,EasyNetQ将恢复轮询端点,直到它可以重新连接。

标准做法是在应用程序的生命周期内创建单个IBus实例。在应用程序关闭时处理它。

与RabbitMQ服务器的延迟连接由IBus接口表示。大多数EasyNetQ操作都是IBus上的方法。您创建一个这样的IBus实例:

var bus = RabbitHutch.CreateBus(“host=myServer;virtualHost=myVirtualHost;username=mike;password=topsecret”);

连接字符串由key = value格式的键/值对组成,每个键都以分号(;)分隔。唯一必填字段是“主机”。可能的连接字符串值为:

  • 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)。有关详细信息,请参阅群集支持
  • virtualHost(例如virtualHost = myVirtualHost)默认为默认虚拟主机'/'
  • username(例如username = mike)默认为'guest'(对于非'localhost'主机,您需要其他用户而不是'guest')
  • password(例如密码= mysecret)默认为'来宾'
  • requestedHeartbeat(例如requestedHeartbeat = 10)默认为10秒。没有心跳,设置为零。
  • prefetchcount(例如prefetchcount = 1)默认值为50.这是在EasyNetQ发送ack之前RabbitMQ将传递的消息数。设置为0表示无限预取(不推荐)。设置为1,以便在消费者群体中实现公平的工作平衡。
  • publisherConfirms(例如publisherConfirms = true)默认为false。这将启用Publisher Confirms
  • persistentMessages(例如persistentMessages = false)默认为true。这决定了在发布消息时如何设置basic.properties中的delivery_mode。false = 1,true = 2。设置为true时,RabbitMQ将消息保留到磁盘,并在服务器重新启动后继续存在。设置为false时,可以预期性能提升。
  • product(例如产品=我真正重要的服务)在EasyNetQ 0.27.3中引入。default value是实例化总线的可执行文件的名称。此处输入的值将显示在RabbitMQ的管理界面中。
  • platform(例如platform = my.fully.qualified.domain.name)在EasyNetQ 0.27.3中引入。default value是运行客户端进程实例化总线的计算机的主机名。此处输入的值将显示在RabbitMQ的管理界面中。
  • timeout(例如超时= 60)默认为10秒。在EasyNetQ 0.17中引入。解析为System.UInt16类型。范围从0到65535.格式以秒为单位。对于无限超时,请使用0.超出值时抛出System.TimeoutException。

要关闭连接,只需像这样处理总线:

bus.Dispose();

这将关闭EasyNetQ使用的连接,渠道,消费者和所有其他资源。

password  ['pɑːswɜːd]  详细X
基本翻译
n. 密码;口令
网络释义
Password: 密码
Confirm Password: 确认密码
Admin Password: 管理密码

【EasyNetQ】- 连接RabbitMQ的更多相关文章

  1. 远程连接RabbitMQ失败

    远程连接RabbitMQ失败 为了避免污染宿主系统环境,于是在虚拟机中搭建了一个linux环境并且按照了rabbitmq-server.然后在远程连接的时候一直连接失败. 官网上面给的例子都是在本地使 ...

  2. [转载]PHP 连接 Rabbitmq 实例代码

    转自 http://www.dahouduan.com/2017/11/23/php-rabbitmq-demo/ 接下来我们用 php 连接 rabbitmq 玩一玩.还没有安装 rabbitmq ...

  3. 【js学习】js连接RabbitMQ达到实时消息推送

    js连接RabbitMQ达到实时消息推送 最近在自己捯饬一个网站,有一个功能是需要后端处理完数据把数据发布到MQ中,前端再从MQ中接收数据.但是前端连接MQ又成了一个问题,在网上搜了下资料,点进去一篇 ...

  4. EasyNetQ操作RabbitMQ(高级消息队列)

    RabbitMQ是实现了高级消息队列协议(AMQP)的开源消息代理软件(亦称面向消息的中间件).写消息队列的时候用RabbitMQ比较好,但是写的时候需要自己封装下,自己的封装,就需要对RabbitM ...

  5. Pika 连接 rabbitmq 集群

    原文:https://blog.csdn.net/Tech_Salon/article/details/82890431 使用 Pika 连接 rabbitmq 集群使用 python 编程经常会用到 ...

  6. Node.js连接RabbitMQ,断线重连,动态绑定routing key

    RabbitMQ官方提供的教程https://www.rabbitmq.com/tuto...,是基于回调的. 下面将给出基于Promise式的写法.并且实现动态的队列绑定 初始化配置 const a ...

  7. RabbitMQ学习第一记:用java连接RabbitMQ

    1.什么是RabbitMQ MQ(Message Queue):消息队列,是服务端设计的一个可以存储大量消息的队列,并提供客户端操作队列的方法:生产队列(向队列中添加数据).消费队列(从队列中取数据) ...

  8. EasyNetQ使用(二)【连接RabbitMQ,SSL连接,Logging】

    如果你连接过关系数据库,例如SQL Server.你会发现EasyNetQ处理connections有点奇怪.和关系数据库通讯一直都是通过client开始的.Client 打开一个连接, 发出一个SQ ...

  9. 2-用EasyNetQ连接RabbitMQ(黄亮翻译)

    如果你连接过关系数据库,例如SQL Server.你会发现EasyNetQ处理connections有点奇怪.和关系数据库通讯一直都是通过client开始的.Client 打开一个连接, 发出一个SQ ...

随机推荐

  1. loushang框架的开发中关于BSP的使用,将写好的功能模块部署到主页界面结构上

    前言: 当我们已经开发好相应的模块或者功能的时候,需要将这个功能部署在index主页上作为可点击直接使用的模块,而不是每次需要去浏览对应的url地址. 这时候就需要运用到L5的BSP. 作为刚刚入门l ...

  2. dom4j解析器sax解析xml文件

    1.使用dom4j解析器解析xml ***解析器dom4j是由dom4j组织提供的,针对xml进行解析.dom4j不是Javase的一部分,使用时需要导入dom4j的jar包(官网下载) 在eclip ...

  3. click与on的区别

    click只能用于html在注册事件之后没有变化的:on用于html在注册事件后,还会通过JS脚本添加一些按钮,并者希望这些按钮也会有之前注册事件的按钮同样的事件话,就需要用on去为按钮的父节点去注册 ...

  4. 微信小程序 - 生命周期 - 参数传递

    ​ 现在WEB开发门槛越来越高,不想java 会了就可以有工作,前端不行 ,不仅JavaScript要求不低,基础的HTML+CSS还要扎实,jquery也是必须要会,现在的前端框架 Vue Ng R ...

  5. YII2.0 表单验证手机号是否合法且唯一

    [['phone'], 'unique'], ['phone','match','pattern'=>'/^1[345678]{1}\d{9}$/','message'=>'{attrib ...

  6. GDOI DAY1游记

    今天,是本蒟蒻的第一次参加GDOI,真激动! 今天,是GDOI第一天,昨天熬夜打代码,今天早上状态十分不好,于是... 进入了考场,叫我们自由打一会代码,于是...打了一坨AC机,重要的是错了(额.. ...

  7. 20145202马超《JAVA》预备作业1

    20145202马超<JAVA>预备作业1 你觉得自己专业吗?对专业的期望是什么? 我觉得自己很不专业,我对专业的期望:老师之前讲过德国的一个研究,学习分为5个档次,第三个档是能够自己发现 ...

  8. 搭建cvs服务器

    http://zhangjunhd.blog.51cto.com/113473/78595 http://www.cnblogs.com/lee/archive/2008/10/22/1317226. ...

  9. Oracle physical dataguard with broker部署

    一.环境说明 主库:10.110.96.88 备库:10.110.96.87 数据库实例:gisc 二.主库操作 1.开启force logging ALTER DATABASE FORCE LOGG ...

  10. Python-学习-小例子练习

    网上了点小例子,练习一下下,都是特别简单的.而且这些代码也都是找的网上的代码,目的是在于练习一下Python和熟悉下Python的编码风格等等 学习一门语言,最快的方法就是把它用在世界的开发中,这样才 ...