1

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 客户端正确处理故障转移的程序是什么?是否有内置机制或必须手动编码?

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

4

2 回答 2

1

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

于 2018-08-21T16:02:59.023 回答
1

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

于 2021-02-26T18:10:25.923 回答