Клиентский подход JBoss AMQ .Net для аварийного переключения

Red Hat рекомендует использовать AMQPNetLite группой Azure в качестве клиента для подключения к JBoss AMQ при подключении к брокеру из приложений на основе.Net - 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, но эта прозрачная обработка отказов представляется Клиент для JMS API, а не.Net API.

AMQPNetLite, по-видимому, не обрабатывает отработки отказа автоматически - https://github.com/Azure/amqpnetlite/issues/33

Какова рекомендация Red Hat или какая-либо документированная процедура для клиентов.Net для правильной обработки аварийного переключения? Есть ли встроенный механизм или его нужно кодировать вручную?

Будут ли возникать какие-либо исключения во время такого аварийного переключения, чтобы клиент мог определить, что произошло аварийное переключение, а сервер резервного копирования не является действующим сервером?

2 ответа

Решение

Способ обработки отказа зависит от клиента. Apache Artemis поставляется с собственным клиентом, который обрабатывает отработки отказа в соответствии с документацией, которую вы связали. Клиент AMQPNetLite не поставляется вместе с брокером и поэтому на 100% независим. На основании связанной проблемы AMQPNetLite кажется, что она не поддерживает отработку отказа. Для получения дополнительной информации я рекомендую вам спросить об этом сообщество AMQPNetLite (т.е. использовать их теги, а не теги брокера, такие как activemq-artemis & jboss-amq).

Если вы не хотите реализовывать это самостоятельно с помощью AmqpNetLite, вы можете попробовать ArtemisNetClient, управляемый сообществом. Он построен поверх AmqpNetLite и имеет встроенную функцию автоматического восстановления -> https://havret.github.io/dotnet-activemq-artemis-client/docs/auto-recovery.

Другие вопросы по тегам