gpt4 book ai didi

带有 F5 负载均衡器的 RabbitMQ

转载 作者:行者123 更新时间:2023-12-03 21:32:38 31 4
gpt4 key购买 nike

我正在尝试在 F5 负载均衡器后面配置 RabbitMQ。我有一个正常工作的 RabbitMQ 节点,默认节点名称为 rabbit@%computername%。它设置为监听所有网络接口(interface)(所有 IP 地址 0.0.0.0:5671,这是 AMQP SSL 端口),并且工作正常。但是,连接到它的所有客户端应用程序当前都使用特定的节点名称,例如“%计算机名%”。为了利用负载均衡器的容错性,我想更新我的所有客户端应用程序以使用负载均衡名称而不是特定节点名称,例如使用 HostName = "balancedname.mycompany.com"而不是 "%computername%"进行连接。但是,当我更新客户端应用程序以连接到负载平衡名称时,连接失败。我怎样才能让它工作?

我是 F5 的新手,我确实注意到池成员的地址是 IP 地址……这些应该是节点名称而不是 IP 地址吗?是否有可能看到节点名称可以是完全任意的,并且不一定映射到任何网络可解析的东西?我处于托管情况,我没有对 F5 的写入权限,因此尝试这些事情有点棘手。

我根本没有找到很多关于负载平衡 RabbitMQ 设置的信息。我确实了解所有 RabbitMQ 队列仅真正存在于一个节点上,并且我已将 F5 设置为主动-被动模式,这样流量将始终路由到主节点,除非它出现故障。

更新 1:好像this issue回来在这里咬我。我正在使用 SSL 证书进行外部身份验证,并且由于客户端使用负载平衡名称而不是节点名称进行连接,并且负载平衡名称未用于创建证书,因此它拒绝了连接。我最终重新生成了证书并使用了负载平衡名称,但这还不够——我还必须在 Windows 主机文件中添加一个条目,以将 127.0.0.1 和::1 映射到负载平衡 DNS 地址。

更新 2:更新 1 仅解决了在作为负载均衡器一部分的应用服务器上运行客户端应用程序的连接问题,但远程客户端不起作用。内部异常说“证书链是由不受信任的机构颁发的”。 RabbitMQ + SSL 很难。添加负载平衡会使它变得更加困难。

最佳答案

我正在回答我自己的问题,希望它能为人们节省一些时间。在我的场景中,我需要客户端连接到像 myrabbithost.mycompany.com 这样的负载平衡地址,并让 F5 将流量定向到一个节点(只要它启动)并故障转移到辅助节点(如果它关闭)。我已经配置了安全性,并且正在使用自签名证书对 RabbitMQ 进行身份验证。这些证书具有特定于每个主机的通用名称,这是问题所在。为了使用 .NET,证书上的公用名必须与连接到的服务器名称匹配(在我的例子中是 myrabbithost.mycompany.com)。我必须执行以下操作:

  • 在通用名称为 myrabbithost.mycompany.com
  • 的 RabbitMQ 服务器上生成新的服务器和客户端证书
  • 生成新证书供客户端在连接时使用,以便使用 SSL 身份验证
  • 仍然在 RabbitMQ 服务器上,我必须连接用于证书颁发机构的多个 cacert.pem 文件,以便客户端可以使用任何节点生成的客户端证书对任何节点进行身份验证。当我修改 rabbit.config 以使用“all.pem”而不是“cacert.pem”时,客户端能够连接,但它破坏了管理 UI,所以我修改了 rabbit.config 中的 rabbitmq_management 设置以指定主机-特定的 cacert.pem 文件,它又开始工作了。

  • 为了设置高可用性,我设置了一个 RabbitMQ 集群,但也遇到了一些问题。除了将 Erlang cookie 从主节点复制到 C:\Windows 和 C:\users\myusername 的辅助节点之外,我还必须通过任务管理器终止 epmd.exe 进程,因为 rabbitmqctl join_cluster 命令失败并显示“节点关闭”错误。 epmd.exe 进程在 RabbitMQ 停止后仍然存在,它可能导致 rabbitmqctl.bat 报告错误错误,例如“节点关闭”,即使它没有关闭。

    关于带有 F5 负载均衡器的 RabbitMQ,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40727535/

    31 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com