Интеграция поиска Hibernate с RabbitMQ для распределенного бэкэнда

Кто-нибудь интегрировал поисковый индекс Hibernate вместо очередей с RabbitMQ или JMS или ActiveMQ.

Мы уже используем RabbitMQ как часть нашего приложения в нескольких различных областях. Мы не хотим внедрять избыточное программное обеспечение, которое мы должны поддерживать в дальнейшем. Какие есть альтернативы этой модели?

Какие-либо предложения?

Спасибо

1 ответ

Решение

Вы можете легко реализовать пользовательские

org.hibernate.search.backend.spi.BackendQueueProcessor

(SPI обозначает интерфейс служебного программирования: т.е. не совсем публичный API, но подразумевает определение устойчивых точек расширения)

Взгляните на реализацию JMS на GitHub, вы увидите, что вам нужно только:

  • захватить сериализацию
  • сериализовать отправленную вам очередь операций
  • отправить его в очередь

Для стороны получателя это так просто:

  • захватить службу десериализации
  • десериализовать очередь
  • переслать его на правильный indexManager

Пример: полная реализация - один из методов.

Не стесняйтесь внести свой вклад! Мы принимаем пул-запросы, вы также можете отправлять неполные предложения для обсуждения их на github (или не стесняйтесь в списках рассылки).

Другие вопросы по тегам