我试图找出通过 wcf 使用 rabbitmq 集群的最佳解决方案是什么。
当前设置:
- 2 个 IIS Web 服务器(作为消息生成并通过 amqp wcf 客户端将消息发布到队列)。
- 2台带有rabbitmq代理的服务器(集群镜像队列,rabbit1和rabbit2)
- Windows 服务(工作人员),带有监听传入消息的托管 amqp wcf 服务。
Web角色向rabbit1节点发布消息,worker也监听rabbit1节点。如果 rabbit1 节点出现故障,系统(web 和 worker)应该切换到 rabbit2。这就是问题所在,如何以更优雅的方式实现这一点,而不是在应用程序代码中处理连接失败。
我现在看到的第一个也是唯一的方法是使用 wcf4 路由备份端点功能。这种方式只能解决客户端(Web 角色)的问题,但不能解决 wcf 服务端(工作者角色)的问题。