Лучший способ реализовать шаблон отказоустойчивости для клиентов Java - PullRequest
1 голос
/ 02 октября 2011

Мы разрабатываем клиент Java (будет развернут на Tomcat, Windows 2008 R2), который должен подписаться на некоторые темы JMS по Sonic MQ.

Клиент хочет иметь избыточность для этого Java-клиента, и в любой момент времени на темы может быть подписан только один подписчик.

Наши требования аналогичны этой публикации .

Существует ли какой-либо стандартизированный проект с открытым исходным кодом, созданный для этой цели, или мы должны написать собственный код для проверки работоспособности сервера (отнимает много времени)?Как лучше всего реализовать этот Java-клиент.

Мы изучаем следующие технологии для использования сообщений JMS:

  • Spring Integration
  • Apache Camel

Мы идем в правильном направлении?Мы должны иметь возможность запускать / останавливать подписку на темы на лету.

1 Ответ

1 голос
/ 02 октября 2011

У Apache Camel есть что-то подобное из коробки, отметьте this . Он реализует шаблон EAI Load Balancer. Вы можете выбрать «Отказоустойчивость». кажется, использует Exception, чтобы решить, какой процессор идти дальше.

Другим способом может быть реализация простых пользовательских звуковых ударов на основе jms среди подписчиков, чтобы отслеживать состояние здоровья друг друга и балансировать нагрузку или аварийное переключение. Каждый подписчик может отслеживать, что он должен обрабатывать. Например, по предоставленной вами ссылке каждый подписчик знает субъект, которого он слушает, и продолжает получать звуковой сигнал от другого подписчика в случае сбоя при сбое пульса слушатель начнет принимать сообщения для сбойного слушателя. Я думаю, что вы можете использовать JMS Message Selector для реализации фильтров. Хорошей ссылкой для начала может быть эта старая статья о Javaworld.

...