为 Hibernate Search 4.1 准备了另一个 CR!即使在候选发布阶段,我们也引入了一些不仅仅是常规的小错误修复的内容,因为这些改进太好了,不能延迟,而且在技术上风险不大。
依赖于 Hibernate 4.1
Hibernate Search 已更新以与 Hibernate ORM 4.1 一起工作,因为它仍在使用 4.0。
重新思考 JGroups 集成
JGroups 通道是在使用 JGroups 连接集群中的多个节点时使用的通信传输;在 4.1.0.CR3 之前,Hibernate Search 会要求您为每个集群索引配置一个通道,但需要配置多个 JGroups 通道是很繁琐的:例如,每个通道应使用不同的网络端口集。
现在,通道是跨所有索引共享的服务:配置为使用 JGroups 的每个索引都将共享相同的通道实例。这简化了配置、网络管理和初始化速度。
配置细节在JGroups 配置段落中描述。
如果您之前使用过 JGroups,请参阅迁移指南。
JGroups 通道注入
现在,可以让 Hibernate Search 使用现有的 JGroups 通道,在配置中注入实例。这主要是为了其他框架集成我们的搜索引擎,例如 CapeDwarf,以便它们可以控制通道的生命周期并使用替代初始化选项。然而,请记住:搜索安装了自己的消息接收器,它不会与其他服务共享通道!
import org.hibernate.search.backend.impl.jgroups.JGroupsChannelProvider;
org.jgroups.JChannel channel = ...//initialize or lookup the channel directly
Map<String,String> properties = new HashMap<String,String>();
properties.put( JGroupsChannelProvider.CHANNEL_INJECT, channel );
properties.put( //...other options
EntityManagerFactory emf = Persistence.createEntityManagerFactory( "userPU", properties );
下一阶段的计划...
我们还在努力使主/从节点选举过程自动化,但这对CR来说是一个太大的改动,所以先把它当作4.2版本的一个预告!当然,如果您愿意参与编码并尝试最新版本,现在就可以开始测试了。
常用链接
- 从Sourceforge或通过Maven artifacts下载
- 在论坛或邮件列表上联系
- 提供帮助:查看JIRA并从GitHub获取代码