solr进阶-动态配置管理

solr提供了DIH并集成tika,因此配置db、文档索引都会感觉到非常方便,但是如果你的业务要求你的程序必须能在友好的UI中配置DB导入,程序员刚上来难免一脸蒙逼了。

基于solr的DB导入管理功能的开发首先要解决解决以下三个问题(本篇主要针对2进行介绍):

1、solr服务的代理调用

2、solr配置文件的远程操作

3、solr配置文件的结构化读写

新增数据库表的导入需要对db-data-config.xml、schema.xml等文件中的内容进行动态修改、重新载入并执行dataimport使其生效。那么问题来了,solr服务与应用不在一个物理主机上,应用该如何操作远程的配置?你可能会有以下思路:

1、在solr服务器上搭建文件服务

2、研究solr http rest api,试图找到其对配置修改并重载的方法,并保留对solr进行扩展的极端手段

3、使用solr内置的zookeeper服务

让我们逐一分析以上思路的利弊:

1、需额外增加服务,应用需增加针对该文件服务的工具引入和对应代码,如果后期搭建solr集群,会使文件管理变得非常复杂,果断pass。

2、个人没有找到写配置的rest api,扩展solr可对单节点solr服务有良好支持,但对于solrcloud仍是噩梦,继续pass。

3、solr内置zookeeper服务,zk也是solrcloud分布式配置的实现,zk提供易用的节点操作的java api,此方案在实现复杂度、扩展性、兼容性方面均占据绝对优势,果断选取。

选定方案后,思路变得清晰了。zookeeper节点的远程操作,需要zookeeper.jar工具包支持,增加读写操作如下:

byte[] bytes = zooKeeper.getData(path
, null, null);//读
zooKeeper.setData(path, bytes , -1);//写


操作详见zookeeper api

于是配置文件的远程操作则大功告成了!




但是!应注意以下问题

1、读写操作应注意规避系统默认编码问题

2、solr zk后续启动不要覆盖已维护的配置

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

火腿霹雳

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值