我试图让RabbitMQ配置在F5负载均衡器后面。我有一个工作的RabbitMQ节点,其默认节点名称为rabbit @%computername%。它设置为侦听所有网络接口(所有IP地址为0.0.0.0:5671,这是AMQP SSL端口),并且工作正常。但是,连接到它的所有客户端应用程序当前正在使用特定的节点名称,例如“%计算机%”。为了利用负载平衡器的容错能力,我想更新所有客户端应用程序以使用负载平衡名称而不是特定节点名称,例如使用HostName =“balancedname.mycompany.com”而不是“%computername%”连接。但是,当我更新我的客户端应用程序以连接到负载平衡名称时,连接失败。我怎样才能使这个工作?带F5负载均衡器的RabbitMQ
我是F5的新手,我注意到池的成员地址是IP地址...应该是节点名称而不是IP吗?甚至有可能看到节点名称可能完全是任意的,并不一定映射到任何网络可解析的东西?我处于托管状态,因为我没有对F5的写入权限,所以尝试这些事情有点棘手。
我在负载平衡RabbitMQ设置上一直没有找到非常多的信息。我明白,所有RabbitMQ队列只存在于一个节点上,我已经将F5设置为主动 - 被动模式,这样流量总是会路由到主节点,除非它停止。
更新1:看来,this issue回来咬我这里。我使用SSL证书进行EXTERNAL身份验证,并且由于客户端使用负载平衡名称而不是节点名称进行连接,并且负载平衡名称未用于创建证书,所以它拒绝了连接。我最终重新生成了证书并使用了负载平衡名称,但这还不够 - 我还必须在Windows主机文件中添加一个条目,以将127.0.0.1和:: 1映射到负载平衡DNS地址。
更新2:更新1仅解决连接问题,用于在作为负载平衡器一部分的应用程序服务器上运行客户端应用程序,但远程客户端无法工作。内部例外说“证书链是由不受信任的权威机构颁发的”。 RabbitMQ + SSL很难。而增加负载平衡使其更加困难。