16,EasyNetQ-群集支持
EasyNetQ支持RabbitMQ群集,无需部署负载均衡器。
只需在连接字符串中列出群集的节点...
var bus = RabbitHutch.CreateBus("host=ubuntu:5672,ubuntu:5673");
在这个例子中,我们在一台机器上建立了一个集群'ubuntu',端口5672上的节点1和端口5673上的节点2上。当CreateBus语句执行时,EasyNetQ将尝试连接到列出的第一台主机(ubuntu:5672)。 如果连接失败,它会尝试连接到列出的第二台主机(ubuntu:5673)。 如果两个节点都不可用,则它将位于重试循环中,每五秒钟尝试连接两台服务器。 它将所有这些活动记录到注册的IEasyNetQLogger。 如果第一个节点不可用,您可能会看到类似这样的内容:
DEBUG: Trying to connect ERROR: Failed to connect to Broker: 'ubuntu', Port: 5672 VHost: '/'. ExceptionMessage: 'None of the specified endpoints were reachable' DEBUG: OnConnected event fired INFO: Connected to RabbitMQ. Broker: 'ubuntu', Port: 5674, VHost: '/'
如果EasyNetQ连接的节点发生故障,EasyNetQ将尝试连接到下一个列出的节点。 一旦连接,它将重新申报所有交易所和队列,并重新启动所有消费者。 以下是一个示例日志记录,显示一个节点出现故障,然后EasyNetQ连接到另一个节点并重新创建订户:
INFO: Disconnected from RabbitMQ Broker DEBUG: Trying to connect DEBUG: OnConnected event fired DEBUG: Re-creating subscribers INFO: Connected to RabbitMQ. Broker: 'ubuntu', Port: 5674, VHost: '/'
1,随机主机选择
如果您有多个使用EasyNetQ连接到RabbitMQ群集的服务,它们将首先连接到其各自连接字符串中的第一个列出的节点。 如果您打算使用负载平衡功能,则应考虑切换到RandomClusterHostSelectionStrategy。 像这样配置它:
var bus = RabbitHutch.CreateBus("host=myfirsthost,mysecondhost", x => x.Register<IClusterHostSelectionStrategy<ConnectionFactoryInfo>, RandomClusterHostSelectionStrategy<ConnectionFactoryInfo>>());
在这个片段中,我们已经替换了RandomClusterHostSelectionStrategy的默认IClusterHostSelectionStrategy,它将随机选择主机。 您可以在这里找到更多有关替换EasyNetQ组件的信息。
2,考虑使用专用的负载平衡器
EasyNetQ集群支持的替代方案是使用专用的前端代理。 有关详细信息,请参阅RabbitMQ集群指南的结尾:http://www.rabbitmq.com/clustering.html
- 16+ 节点 VSAN 群集需要 ESXi 高级设置支持
- VC支持十六(16)进制的字符串转换为数值函数strtoul
- Selenium IDE 1.10.0 将支持Firefox16
- Windows Azure HDInsight 支持预览版 Hadoop 2.2 群集
- JWasm masm语法 多平台,支持16~64位
- Zabbix补充16 Zabbix 表达式中支持的Function函数
- EasyNetQ使用(八)【对延迟消息插件的支持,自动订阅者】
- fedora16英文环境下支持中文输入法的方法介绍(图)
- 16-EasyNetQ之自动订阅者
- 在Fedora 16上安装Nginx(带PHP-FPM)+PHP5和MySQL支持 fix bug确保能用
- IDEA无法编译java8的lambda表达式提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
- C++ Builder 使用 JsonCpp 解析json格式数据方法( 支持 UNICODE (UTF-16) / UTF-8 )
- ESPlatform 支持的三种群集模型 —— ESFramework通信框架 4.0 进阶(09)
- 基于Debian的Linux发行版安装深度音乐及其插件,支持ubunut16
- 一个ModBus RTU程序(支持01、02、03、05、06、15、16功能码)
- 服务器群集硬件兼容性列表,以及 Windows 服务器目录的 Microsoft 支持策略
- IDEA无法编译java8的lambda表达式提示Error:(16, 48) java: -source 1.5 中不支持 lambda 表达式
- MDT2010新功能(16)——支持PowerShell
- 16 种被 W3C 的 HTML 4.0 标准支持的颜色
- 16 驱动模块参数(支持外部输入参数)