Уведомление между компонентами Java EE - PullRequest
2 голосов
/ 09 марта 2010

У меня проблема с дизайном.

Мое приложение имеет несколько компонентов Java EE. Проще говоря, один выступает в роли поставщика услуг (не UI), а другие являются потребителями (веб-приложение UI).

Потребитель получает данные конфигурации от поставщика услуг (в основном это считывает данные из БД) во время запуска и сохраняет их в кэше.

Кэш обновляется через некоторое время, чтобы отразить любые изменения, сделанные в базе данных.

Проблема

Помимо обновления кэша, я также хочу уведомить потребителей, когда кто-то изменяет БД, что конфигурация была изменена, пожалуйста, перезагрузите ее.

Какие механизмы уведомлений я могу использовать для достижения этой цели?

Ответы [ 4 ]

3 голосов
/ 09 марта 2010

Я бы пошел с темами / очередями JMS. Производитель отправляет сообщение «REFRESH_CACHE» по теме, и все потребители слушают это

1 голос
/ 09 марта 2010

Взгляните на шаблон проектирования Observer . Вы можете хранить потребителей в списке и уведомлять их, когда происходит что-то интересное.

1 голос
/ 09 марта 2010

Я бы использовал тему для этого. При изменении базы данных вы можете отправить сообщение в тему, и все клиенты, прослушивающие его, могут показать сообщение.

0 голосов
/ 09 марта 2010

Вам может понадобиться Наблюдатель шаблон Он уведомляет потребителей (ваши приложения пользовательского интерфейса) с помощью Callback. Вы можете использовать JMS для уведомлений.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...