Hibernate Search в кластеризованной конфигурации?

У меня есть веб-приложение Java, которое я разрабатываю, используя JBoss Seam в качестве основы приложения. Я хотел бы воспользоваться Hibernate Search, чтобы предоставить возможности поиска сущностей. Интеграция прошла нормально, и я приближаюсь к развертыванию. Настройка приложения в рабочей среде будет следующей:

  • 2 (или более) сервера приложений Tomcat, балансировка нагрузки
  • База данных PostgreSQL на серверной части

У меня вопрос: как настроить Hibernate Search, чтобы локальные индексы Lucene обновлялись на сервере приложений № 2, когда объект сохраняется на сервере приложений № 1, и наоборот? Есть ли в Hibernate Search какая-либо поддержка кластерной конфигурации? Настройка должна быть несколько мастер-мастер, поскольку сохранение может происходить на любом из серверов приложений с балансировкой нагрузки.

Есть ли у кого-нибудь рекомендации, как с этим бороться? Заранее спасибо за помощь!


person Shadowman    schedule 07.10.2011    source источник


Ответы (1)


Как описано в справочной документации, существует несколько типов серверной части:

  • Lucene для некластеризованных и
  • JMS или JGroups для кластерных сред (разделы 3.6./3.7), см. эту красивую иллюстрацию из документации:

введите здесь описание изображения

Может быть способ использовать Terracotta, по крайней мере, это сообщение дает указатели в это направление (не знаю, хорошо ли оно работает или вообще работает).

person jeha    schedule 07.10.2011
comment
Итак, есть ли способы использовать JMS или JGroups при запуске Tomcat? Я знаю, что JMS поставляется с JBoss из коробки, но мы будем развертывать приложение под Tomcat. - person Shadowman; 08.10.2011
comment
@Shadowman: Правильно, поскольку Tomcat - это просто контейнер сервлетов, он поставляется без брокера JMS. Так что вам придется позаботиться об этом вопросе самостоятельно. При использовании Spring вы можете довольно легко встроить, например. брокер ActiveMQ внутри вашего приложения/файла войны. Или сделайте брокер дополнительным структурным компонентом, который также можно легко интегрировать с Tomcat с помощью JNDI. Для JGroups вам просто нужна правильная конфигурация (и jar) (см. Справочное руководство еще раз). - person jeha; 08.10.2011