2011-10-07 115 views
7

我有一个我正在开发的Java Web应用程序,使用JBoss Seam作为应用程序框架。我想利用Hibernate Search来提供实体搜索功能。整合已经很好,我正在接近部署。在生产应用程序的设置将是:集群配置中的Hibernate搜索?

  • 2(或更多)的Tomcat应用服务器,在后端

我的问题是负载均衡

  • PostgreSQL数据库,我该怎么配置Hibernate搜索以便当实体在App Server#1上持久存在时,在App Server#2上更新本地Lucene索引,反之亦然? Hibernate Search是否有任何种类的集群配置支持?由于持久性可能发生在任一负载平衡的应用程序服务器上,因此该设置必须具有一定的主控权。

    有没有人有任何建议如何解决这个问题?感谢您的帮助!

  • 回答

    6

    reference documentation描述有几种后端类型:(。章节3.6/3.7)

    • Lucene的非群集和
    • JMS或JGroups的用于群集环境,看到从这个很好的例子文档:

    enter image description here

    有可能是使用兵马俑的方式,至少this post给出了这个方向的指针(我不知道它是否工作正常,甚至根本不起作用)。

    +0

    那么,运行Tomcat时有没有方法利用JMS或JGroups?我知道JMS是随JBoss提供的,但我们将在Tomcat下部署该应用程序。 – Shadowman

    +0

    @Shadowman:对,因为Tomcat只是一个servlet容器,它没有JMS代理。所以你必须自己关心这个问题。使用Spring时,您可以很容易地嵌入你的应用程序/战争文件中的ActiveMQ代理。或者让经纪人成为一个额外的结构组成部分,它可以很容易地使用JNDI与Tomcat集成。对于JGroups,您只需要一个适当的配置(和罐子)(请参阅参考指南)。 – jeha