EasyNetQ 连接 RabbitMQ
内容导读
互联网集市收集整理的这篇技术教程文章主要介绍了EasyNetQ 连接 RabbitMQ,小编现在分享给大家,供广大互联网技能从业者学习和参考。文章包含2924字,纯文字阅读大概需要5分钟。
内容图文
![EasyNetQ 连接 RabbitMQ](/upload/InfoBanner/zyjiaocheng/985/0d26c108deed4a7fb7ac4358426f6239.jpg)
如果您习惯于处理与 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使用的连接,信道/渠道,消费者和所有其他资源。
原文地址:Connecting to RabbitMQ · EasyNetQ/EasyNetQ Wiki · GitHub
内容总结
以上是互联网集市为您收集整理的EasyNetQ 连接 RabbitMQ全部内容,希望文章能够帮你解决EasyNetQ 连接 RabbitMQ所遇到的程序开发问题。 如果觉得互联网集市技术教程内容还不错,欢迎将互联网集市网站推荐给程序员好友。
内容备注
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 gblab@vip.qq.com 举报,一经查实,本站将立刻删除。
内容手机端
扫描二维码推送至手机访问。