从基于.Net的应用程序连接到代理时,Red Hat建议使用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客户端正确处理故障转移的任何记录过程,有何建议?是否有内置机制或必须手动编码?
在这种故障转移过程中是否会引发任何异常,以便客户端可以识别出发生了故障转移并且备份服务器不是实时服务器?
答案 0 :(得分:1)
如何处理故障转移取决于客户端。 Apache Artemis附带了自己的客户端,该客户端根据您链接的文档处理故障转移。 AMQPNetLite客户端未随代理一起提供,因此是100%独立的。基于链接的AMQPNetLite问题,似乎它不支持故障转移。有关更多信息,我建议您向AMQPNetLite社区询问(即使用其标签而不是像activemq-artemis
和jboss-amq
这样的代理标签)。
答案 1 :(得分:0)
如果您不想使用 AmqpNetLite 自己实现,您可以尝试社区驱动的 ArtemisNetClient。它建立在 AmqpNetLite 之上,并内置了自动恢复功能 --> https://havret.github.io/dotnet-activemq-artemis-client/docs/auto-recovery