2012-01-22 1 views
2

У меня есть приложение J2EE, которое принимает и обрабатывает сообщения (события). Эти сообщения содержат различные блоки данных. Различные типы обработки могут запускаться в зависимости от типа данных, содержащихся в сообщении.Внутренняя шина событий с подключаемыми потребителями

Я хотел бы иметь простую внутреннюю шину событий/сообщений, которая может использоваться основным потоком обработки для вызова разных постпроцессоров в зависимости от содержимого сообщения. Например, если получено сообщение типа A, я хотел бы иметь возможность отправлять внутреннее событие всем постпроцессорам, которые подписались на события типа A. Послепроцессоры могут затем использовать свою магию в свое время /нить. Было бы неплохо (хотя и не обязательно), если постпроцессоры могут быть добавлены/удалены из приложения через какую-то плагиновую структуру.

Я понимаю, что существуют различные автобусы сообщений. Я действительно ищу совет по соответствующему (облегченному) выбору или, возможно, шаблону дизайна, например, для моего собственного приготовления.

Благодаря в ожидании

ответ

3

Guava имеет и хорошую реализацию EventBus. См. documentation.

+0

Спасибо за этот указатель. Я буду работать через документацию и прокомментировать позже в тот же день. – skyman

+0

Perfect - спасибо – skyman

2

Вы также можете проверить MBassador https://github.com/bennidi/mbassador.

Это аннотация, очень легкая и использует слабые ссылки (таким образом, легко интегрироваться в средах, где управление жизненным циклом объектов осуществляется с помощью фреймворка, такого как весна или гусь или нечто подобное). Он обеспечивает механизм фильтрации объектов и синхронную или асинхронную обработку отправки/обработки сообщений. И это очень быстро!

EDIT: Я создал сравнение производительности и функций для выбора доступных реализаций шины событий, включая Guava, MBassador и некоторые другие. Результаты весьма интересны. Посмотрите здесь http://codeblock.engio.net/?p=37

+0

Добавлена ​​дополнительная документация. Я думаю, что в ближайшем будущем я представлю сравнение производительности с автобусом Guava. – bennidi

+0

Благодарим вас за это. – skyman

Смежные вопросы