7.2.4.3. Master 节点


每个索引更新操作都从 Jakarta 消息传递队列执行并执行。主索引定期复制。

执行 Jakarta Messaging 队列中的索引更新操作,并定期复制主索引。

Jakarta 消息传递服务主配置

### master configuration

## DirectoryProvider
# (remote) master location where information is copied to
hibernate.search.default.sourceBase = /mnt/mastervolume/lucenedirs/mastercopy

# local master location
hibernate.search.default.indexBase = /Users/prod/lucenedirs

# refresh every half hour
hibernate.search.default.refresh = 1800

# appropriate directory provider
hibernate.search.default.directory_provider = filesystem-master

## Back-end configuration
#Back-end is the default for Lucene
Copy to Clipboard Toggle word wrap

除了 Hibernate Search 框架配置外,还必须编写和设置消息驱动型 Bean,以便通过 Jakarta Messaging 处理索引工作队列。

消息驱动的 Bean 处理索引队列

@MessageDriven(activationConfig = {
      @ActivationConfigProperty(propertyName="destinationType",
                                propertyValue="javax.jms.Queue"),
      @ActivationConfigProperty(propertyName="destination",
                                propertyValue="queue/hibernatesearch"),
      @ActivationConfigProperty(propertyName="DLQMaxResent", propertyValue="1")
   } )
public class MDBSearchController extends AbstractJMSHibernateSearchController
                                 implements MessageListener {
    @PersistenceContext EntityManager em;

    //method retrieving the appropriate session
    protected Session getSession() {
        return (Session) em.getDelegate();
    }

    //potentially close the session opened in #getSession(), not needed here
    protected void cleanSessionIfNeeded(Session session)
    }
}
Copy to Clipboard Toggle word wrap

本例继承了 Hibernate Search 源代码中提供的抽象 Jakarta 消息传递控制器类,并实施 Jakarta EE MDB。此实施以示例形式提供,并可通过利用非 Jakarta EE 消息驱动型 Bean 而进行调整。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat