Как кластеризовать ServiceMix?

Я ищу некоторые начальные указатели на то, как кластеризовать решение ServiceMix. В основном мне нужно:

  • наличие 2 (или более) экземпляров ServiceMix, обслуживающих мои потребности в маршрутизации и разделяющих нагрузку
  • если один экземпляр выходит из строя, другие продолжают работать
  • если неудачник возвращается к жизни, он присоединяется к партии

Поиск информации смущает меня, так как

  • некоторые ссылки (например, http://trenaman.blogspot.fi/2010/04/four-things-you-need-to-know-about-new.html) рассказывают о «движке кластера JBI». Я не хочу использовать JBI. Его поддержка устарела. Есть ли отдельный «кластерный движок, не относящийся к JBI», или что происходит...?
  • Я вижу много упоминаний о "DOSGi". Нужно ли мне забивать всем этим свою простую голову, если я хочу добиться кластерного ServiceMix?

В моем решении, вероятно, будет несколько пакетов, которые взаимодействуют друг с другом с помощью очередей JMS. Должен ли я в этом случае просто иметь 2 независимых экземпляра ServiceMix (которые не знают друг о друге). Разве это не самый простой вариант? Я вижу некоторую поддержку конфигурации аварийного переключения (http://servicemix.apache.org/docs/4.5.x/users-guide/failover.html), но какие преимущества это действительно даст (я что-то упускаю)? Кроме того, эта конфигурация аварийного переключения не помогает с балансировкой нагрузки, поскольку только один экземпляр обслуживает запросы.


person Janne Mattila    schedule 03.06.2013    source источник


Ответы (3)


Судя по всему, все, что вам нужно, — это два экземпляра ServiceMix, работающие бок о бок без специальной настройки аварийного переключения. Отказоустойчивость есть, если вам нужен кластер экземпляров, только один из которых обслуживает запросы.

Не обращайте внимания на JBI — это наследие. Распределенный OSGi — отвлекающий маневр в описанном вами варианте использования.

Как предполагает Бодей, Cellar используется для единообразного управления установкой ваших пакетов в логической группе экземпляров Karaf/ServiceMix, поэтому вы можете управлять ими из одного места, а не устанавливать новые версии на каждом экземпляре вручную.

person Jakub Korab    schedule 05.06.2013
comment
Спасибо. Правильно ли я понимаю, что использование Cellar не означает, что я должен лезть в DOSGi или сильно о нем заботиться? Это просто поможет мне в развертывании? И если я не возражаю против небольшой дополнительной работы, я могу забыть о Cellar и просто вручную развертывать обновленные версии на каждом экземпляре? - person Janne Mattila; 07.06.2013
comment
Вот так. Пожалуйста, не забудьте проголосовать, если это было полезно. - person Jakub Korab; 07.06.2013

Fabric8 (http://fabric8.io/) может выполнять кластеризацию Karaf/ServiceMix и многое другое из коробки. Он также имеет дополнительные кластерные компоненты Camel, такие как конечные точки master и Fabric.

Существует кластерный пример Camel, который демонстрирует, что

Принцип проиллюстрирован на изображении ниже:

введите здесь описание изображения

person Claus Ibsen    schedule 03.09.2014

взгляните на Apache Cellar, поскольку он нацелен на эти варианты использования...

http://karaf.apache.org/index/subprojects/cellar.html

person Ben ODay    schedule 03.06.2013