2016-10-06 7 views
0

У меня есть кластер WSO2ESB (ESB1 и ESB2), и я настраиваю кластер WSO2MB с общей базой данных MSSQL (брокеры MB1 и MB2). Серверы ESB будут писать и читать сообщения от брокеров в кластере WSO2MB. Чего я хочу достичь, так это то, что ESB1 будет читать/писать сообщения брокерам MB1, а ESB2 будет читать/писать сообщения брокеру MB2. В случае сбоя, например, MB2, оба сервера ESB будут читать/записывать сообщения в MB1. В документации я вижу только стратегию отказа от развертывания, что означает, что серверы ESB будут случайным образом подключаться к брокерам MB. Существует стратегия однопроцессорной стратегии, но применима ли она в моей ситуации, или я должен реализовать свой собственный интерфейс FailoverMethod? Мне нужна стратегия перехода на приоритет или вес, и я вижу только это в ActiveMQ. Thnx для любого ответа.WSO2 ESB к отказоустойчивости Message Broker

ответ

0

Круглый робот НЕ является случайным алгоритмом, который соединяется с брокерами. Он будет расставлять приоритеты брокерам в указанном порядке в broker list с первого по последний. С настраиваемыми значениями «количество циклов», «повторных попыток», «задержка соединения» вы можете минимизировать повторные попытки для брокеров с низким приоритетом. Несмотря на то, что wso2 mb не имеет взвешенной стратегии перехода на другой ресурс, на данный момент вы можете попытаться добиться аналогичного поведения с помощью вышеуказанных конфигураций.

Насколько я понимаю, в кластере Broker 2 узла (в вашей учетной записи) приоритет брокера (взвешенная стратегия перехода на другой ресурс) не является допустимым случаем. Например, если MB1 недоступен, доступной опцией для отказа является MB2 и наоборот. ЕСЛИ вы не хотите подключать ESB1 к MB2 (пока MB1 не доступен) просто удалите URL-адрес соединения MB2 из списка брокеров в файле «jndi.properties» ESB1. Кроме того, вам нужно изменить «количество циклов», «повторы», «задержка соединения» в URL-адресе брокера MB1, чтобы повторить попытку, пока MB1 снова не появится. Таким образом, эта утилита может быть легко достигнута «круговой» стратегией.

+0

Да, мы проанализировали исходный код интерфейса отказа и работаем, как вы упомянули. Единственный вопрос - когда MB1 вернется к жизни, переключится ли на него переход через некоторое время? Другими словами, соединение сбрасывается после каждой транзакции и снова проверяет список брокеров? В моем примере MB1 не работает, поэтому стратегия round-robin переключается на MB2, и после того, как MB1 снова встает, нам нужно ESB1 снова работать с ним. –