2011-10-07 30 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