Я немного новичок в активном MQ, поэтому, пожалуйста, потерпите меня.
Я пытаюсь воспользоваться преимуществом приоритетного резервного копирования ActiveMQ для некоторых моих приложений на Java и CPP. У меня есть два брокера на двух разных серверах (локальном и удаленном), и я хочу, чтобы следующие приложения работали.
Я успешно протестировал его на 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>
backup
а также priorityBackup
параметры обрабатываются совершенно по-разному в реализации библиотеки Java и C ++.
Реализация Java работает хорошо, но, к сожалению, реализация C ++ не работает. Нет дополнительных опций, которые могут решить эту проблему. Для решения этой проблемы требуются серьезные изменения в библиотеке.
Я тестировал эту проблему, используя activemq-cpp-library-3.8.3 и посредников в различных версиях (5.10.0, 5.11.1). Проблема не устранена в версии 3.8.4.