Проблемы с ActiveMQ 3.8.3 (CPP) priorityBackup не работает

Я немного новичок в активном MQ, поэтому, пожалуйста, потерпите меня.

Я пытаюсь воспользоваться преимуществом приоритетного резервного копирования ActiveMQ для некоторых моих приложений на Java и CPP. У меня есть два брокера на двух разных серверах (локальном и удаленном), и я хочу, чтобы следующие приложения работали.

  1. Всегда подключаться к локальному брокеру при запуске
  2. Если локальный брокер выходит из строя, подключитесь к удаленному
  3. При подключении к удаленному, если локальный возвращается, мы затем подключаемся к локальному.

Я успешно протестировал его на java-приложениях, просто добавив priorityBackup к моим параметрам URI
то есть
отказоустойчивая: (TCP: // локальная: 61616, TCP: // удаленная: 61616) рандомизация = ложь?&priorityBackup = TRUE

Однако на стороне CPP дела идут не так гладко.

Следующее прекрасно работает с приложениями CPP (с базовыми рабочими функциями отработки отказа — так называемый переход на удаленный, когда локальный сбой)

отказоустойчивая: (TCP: // локальная: 61616, TCP: // удаленная: 61616) рандомизация = ложь?

Но обновление параметров URI с помощью priorityBackup, по-видимому, полностью нарушает функциональность переключения при сбое (мои приложения никогда не переключаются на удаленный посредник, они просто остаются в каком-то состоянии без посредника / подвешенного состояния, когда их локальный посредник выходит из строя)
отказоустойчивая: (TCP: // локальная: 61616, TCP: // удаленная: 61616) рандомизация = ложь?&priorityBackup = TRUE

Есть ли что-то, что я здесь скучаю? Дополнительные опции URI, которые я должен был включить?

ОБНОВЛЕНИЕ: информация о транспортном разъеме

<transportConnectors>
<transportConnector name="ClientOpenwire" uri="tcp://0.0.0.0:61616?wireFormat.maxInactivityDuration=7000"/>
<transportConnector name="Broker2BrokerOpenwire" uri="tcp://0.0.0.0:62627?wireFormat.maxInactivityDuration=5000"/>
<transportConnector name="stompConnector" uri="stomp://0.0.0.0:62623"/>
</transportConnectors>

1

Решение

backup а также priorityBackup параметры обрабатываются совершенно по-разному в реализации библиотеки Java и C ++.
Реализация Java работает хорошо, но, к сожалению, реализация C ++ не работает. Нет дополнительных опций, которые могут решить эту проблему. Для решения этой проблемы требуются серьезные изменения в библиотеке.

Я тестировал эту проблему, используя activemq-cpp-library-3.8.3 и посредников в различных версиях (5.10.0, 5.11.1). Проблема не устранена в версии 3.8.4.

0

Другие решения


По вопросам рекламы [email protected]