solr单机多实例部署文件锁冲突解决办法

本文介绍了解决多个Tomcat实例共享同一Solr实例时出现的文件锁冲突问题的方法。通过在Java启动参数中设置唯一标识,并在Solr配置文件中引用该参数动态生成数据目录,实现简化部署流程。

    给出一个有问题的单机多tomcat实例引用同一个solr实例部署图。这种部署必然造成一个问题,启动第二个tomcat实例时,一定会报索引文件夹文件锁已经被占用。


    最初的解决办法是,有多少个tomcat实例,就部署多少个solr的war包。然后依次修改每个solr的core的data路径。如此完成线上部署,实在麻烦,而且容易出错!

    今天请教了位有多年solr经验的同事,终于了了这个心结。

    在Java的启动参数 -Dname=value 上做文章。在启动参数上添加一个标志这个实例的独特参数。譬如:

-Dmyid=server1
    然后再solrconfig.xml的data路径里读取这个参数,示例如下:

<dataDir>/export/data/solr_data/jd_waiter/${myid}</dataDir>
    实例不同,${myid}就不同,路径也就不同。如此一来,一台server,不管你要起多少个solr实例,都只用部署一套solr war包,用相同的配置就可以了!

    化繁为简的招数。

    解释下-D<name>=<value>,java -help里的文档是,set a system property,设置一个系统属性。通过System.getProperty()方法就可以获取java启动参数里的-D值。




评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

bruce128

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

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

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

打赏作者

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

抵扣说明:

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

余额充值