[发明专利]一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法无效
申请号: | 201110440391.5 | 申请日: | 2011-12-23 |
公开(公告)号: | CN102591934A | 公开(公告)日: | 2012-07-18 |
发明(设计)人: | 杨佩;朱力鹏;饶玮;王刚;胡斌 | 申请(专利权)人: | 国网电力科学研究院 |
主分类号: | G06F17/30 | 分类号: | G06F17/30 |
代理公司: | 南京知识律师事务所 32207 | 代理人: | 汪旭东 |
地址: | 210003 *** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 zookeeper 实现 solr shards 自动 扩展 切换 方法 | ||
技术领域
本发明方法属于信息技术领域,是一种优化方法,该方法可以提高搜索服务的可靠性和扩展性。
背景技术
Solr作为一个开源的搜索引擎框架,得到广范的应用,它对外提供服务接口以供应用程序调用。Solr的Sharding技术提供了一种解决数据量大时的分布式解决策略,通过Solr的配置文件来指定相应的Shards。但当有新的Shard加入时,需要修改配置文件并重启Solr服务才能生效;并且当有Shard宕掉时,出于保护数据完整性的目的,整个Solr无法正常工作。关于Solr的相关信息可参考其官方网站http://lucene.apache.org/solr/。而目前多数方法都是为解决数据备份与完整性的解决方案,如Replication等方法,但还没有一种方法能实现Shard的自动扩展与切换功能。
发明内容
该发明主要为解决由于Shards中的某个宕掉致使整个搜索服务无法正常工作以及Solr无法自动识别新加入Shard的问题。
技术方案
本方法主要有以下几个步骤:
a) 注册节点。修改Solr服务,使Solr服务在启动时自动将自身地址注册为Zookeeper节点。
b) 监听Zookeeper。修改应用程序,在启动时开始监听Zookeeper消息,获取在Zookeeper中注册的Shards节点。
c) 维护Shards列表。监听程序维护一个活动的Shards列表,在收到Zookeeper节点变动的消息时,重新生成Shards列表。
d) 生成请求地址。修改应用程序,在查询时要据Shards列表生成所请求的Solr服务地址。
有益效果
在实际应用中,有应用服务A,Solr搜索服务B、C、D。
未使用本方法前,在Solr配置文件中配置了Shards为B和C,A向Solr发起请求查询时,B和C分别查询,结果合并处理后统一返回给A。此时D服务也启动了,并且D拥有额外的索引,A查询时需要从B、C、D中一起查询,这时需要修改Solr配置文件,将D加到配置文件中,并得启Solr服务;接着服务B宕机了,Solr出于保护数据完整性,A查询不到任何数据,只能等待B重启或者修改配置文件,将Shards改为C和D方能正常工作。
使用本方法后,这两个问题都得以解决。新加的Shards能自动识别;有Shards宕机也能自动切换,不影响正常工作。
所以,本方法大大提高了Solr服务的工作效率和可靠稳定性。
附图说明
图1是未使用本方法时的基本应用示意图。
图2是使用本方法时的典型应用示意图。
具体实施方式
首先需要部署Zookeeper,启动Zookeeper服务。
改造所有的Solr服务,引入Zookeeper的jar包;在Web配置文件web.xml中添加或修改初始化Servlet,在Servlet中添加注册Zookeeper的代码。使Solr服务在启动时连接到Zookeeper服务上并注册自身的地址。
改造应用服务,引入Zookeeper的jar包;在Web配置文件web.xml中添加或修改初始化Servlet,在Servlet中添加从Zookeeper获取注册的Shards节点信息的代码,并生成Shards列表代查询使用;同时添加监听Zookeeper消息的方法。有任意节点新增或删除,监听程序能够得到通知,并生成最新的Shards列表。
改造查询代码,查询时根据最新的Shards列表生成请求Solr的地址,如XXXXXXX?shards=A,B,C,以些地址向Solr发送查询请求。
如此,可实现Shards自动扩展和切换功能。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于国网电力科学研究院,未经国网电力科学研究院许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201110440391.5/2.html,转载请声明来源钻瓜专利网。