легкий вес публикует/подписывает платформу в [закрытом] Java

Существует ли хорошая легкая платформа для Java, который обеспечивает публиковать/подписывать шаблон?

Некоторые идеальные функции

  • Поддержка дженериков
  • Регистрация нескольких подписчиков на издателя
  • API, прежде всего, взаимодействует через интерфейс и некоторые полезные реализации
  • чисто в оперативной памяти, персистентность и гарантии транзакции, не требуемые.

Я знаю о JMS, но это - излишество для моей потребности. Публиковать/подписывать данные являются результатом сканирований файловой системы, при этом результаты сканирования питаются к другому компоненту для обработки, которые затем обрабатываются прежде чем быть питаемым другому и так далее.

Править: Все в рамках того же процесса. PropertyChangeListener от бобов не вполне сокращает его, так как это сообщает об изменениях относительно свойств, вместо того, чтобы публиковать определенные объекты. Я мог рожок для обуви ProprtyChangeListener для работы при наличии "последнего опубликованного объекта" свойства, и таким образом, опубликованные объекты. PropertyChangeListeners не поддерживают дженериков и укреплены в семантике изменения свойства, а не чистый публикуют/подписывают. java.util шаблон Наблюдателя / Заметный шаблон были бы хороши, но Oberver является реальным классом.

44
задан mdma 13 June 2010 в 16:56
поделиться

3 ответа

JMS может быть настолько легким или тяжелым, насколько вы его настраиваете. Мы используем, например, HornetQ в одном проекте с очередью в памяти. Он прост в настройке, не требует конфигурации на основе JNDI и действительно прост в использовании.

Я считаю, что JMS как API для Message Pub / Sub настолько проста, насколько это возможно. (И не проще;)

13
ответ дан 26 November 2019 в 22:18
поделиться

Поскольку вы используете Spring, я не знаю, знаете ли вы, что Spring имеет собственную облегченную структуру событий . Он используется в основном внутри самого фреймворка, но его прекрасно может использовать код приложения.

По умолчанию это синхронный pub / sub, но вы можете сделать его асинхронным, используя ApplicationEventMulticaster .

8
ответ дан 26 November 2019 в 22:18
поделиться

Если вы пересекаете границы процессов, то возникает определенный "вес". Почему вы говорите, что JMS имеет большой вес? API довольно прост? Существуют предположительно легковесные реализации, например текст ссылки Более тяжелые затраты, такие как персистентность и транзакционность, являются необязательными.

Что вам нужно, что легче этого?

0
ответ дан 26 November 2019 в 22:18
поделиться
Другие вопросы по тегам:

Похожие вопросы: