我正在使用MassTransit 3.5对抗RabbitMQ。我有一个F5负载均衡器作为2个RabbitMQ节点之间的故障转移。如果我取下主节点,但在停机期间继续通过MassTransit发送消息,那么在RabbitMQ发生故障时发送的任何消息都会丢失,然后F5才能故障转移到辅助节点。如何确保邮件不会丢失?
这是F5问题吗?如果是这样,确保立即故障转移到辅助节点的最佳方法是什么?我见过Chris Patterson的评论here:“F5做了AMQP级别的健康监测”。但我管理F5的网络安全人员告诉我,F5对AMQP一无所知。我们是否缺少某种F5更新或插件或能够识别AMQP的东西?现在,我们的F5监视器正在对各个RabbitMQ节点执行HTTPS命中,例如:https://the_ip_of_the_node:15671/api/。并且间隔为3秒,超时为10秒。根据Chris Patterson的评论,我认为这是不对的。
我们现有的监视器最终会起作用,但在发生故障转移之前发送的任何消息都会完全丢失。所以我有一个13秒的厄运窗口,这些消息就会消失。
我没有看到AMQP F5监视器类型here,那么F5如何基于AMQP进行故障转移? This post谈到在C中编写自定义二进制文件以便让F5用于这种监控 - 是解决方案吗?似乎很难。