JBoss 用于故障转移的 AMQ .Net 客户端方法

JBoss AMQ .Net Client approach for failover

Red Hat 建议在从基于 .Net 的应用程序连接到代理时使用 Azure 团队的 AMQPNetLite 作为客户端连接到 JBoss AMQ - https://access.redhat.com/documentation/en-us/red_hat_amq/7.0/html-single/using_the_amq_.net_client/index

JBoss AMQ 基于 Apache Artemis,它支持客户端的自动故障转移处理 - https://activemq.apache.org/artemis/docs/1.0.0/ha.html#failover-mode 但客户端的这种透明故障转移处理似乎是针对 JMS API 而不是.Net API.

AMQPNetLite 似乎不会自动处理故障转移 - https://github.com/Azure/amqpnetlite/issues/33#issuecomment-144798871

Red Hat 的建议是什么,或者 .Net 客户端正确处理故障转移的任何记录程序是什么?是否有内置机制或是否必须手动编码?

在这种故障转移期间是否会引发任何异常,以便客户端可以识别故障转移已经发生并且备份服务器不是活动服务器?

如何处理故障转移取决于客户端。 Apache Artemis 发布了自己的客户端,它根据您链接的文档处理故障转移。 AMQPNetLite 客户端不随代理一起提供,因此是 100% 独立的。基于链接的 AMQPNetLite 问题,它似乎不支持故障转移。有关更多信息,我建议您询问 AMQPNetLite 社区(即使用他们的标签而不是像 activemq-artemis & jboss-amq 这样的经纪人标签)。

如果您不想使用 AmqpNetLite 自己实现它,您可以尝试社区驱动的 ArtemisNetClient。它建立在 AmqpNetLite 之上,并具有内置的自动恢复功能 --> https://havret.github.io/dotnet-activemq-artemis-client/docs/auto-recovery