[发明专利]一种实现搜索引擎节点自动扩展与切换的方法在审
申请号: | 201711102057.2 | 申请日: | 2017-11-10 |
公开(公告)号: | CN109787787A | 公开(公告)日: | 2019-05-21 |
发明(设计)人: | 不公告发明人 | 申请(专利权)人: | 南京白牙智能科技有限公司 |
主分类号: | H04L12/24 | 分类号: | H04L12/24;H04L29/08;G06F11/30 |
代理公司: | 暂无信息 | 代理人: | 暂无信息 |
地址: | 211135 江苏省南京*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 自动扩展 搜索引擎 数据量比较 查询请求 工作效率 活动节点 搜索服务 应用程序 监听 查询 撰写 服务 维护 | ||
一种实现搜索引擎节点自动扩展与切换的方法,基于Zookeeper实现多个Solr Shards自动扩展与切换。当数据量比较大时,利用Solr Sharding作为扩展策略,但当多个Shards当中的某一个宕掉时,整个服务将无法使用。本文撰写的方法就是对每一个活动的Shards都在Zookeeper上注册,应用程序维护一个Zookeeper上活动节点的列表并监听Zookeeper的消息,一旦有新的Shard加入或者有Shard宕掉,该列表会相应变化,在查询请求Solr服务时根据该列表,获取活动的Shards进行查询,实现了Solr Shards的自动扩展,避免了因为某一个Shard宕掉致使搜索服务无法工作的情况,也提供了自动扩展的功能,提高工作效率。
技术领域
本发明方法属于信息技术领域,是一种优化方法,该方法可以提高搜索服务的可靠性和扩展性。
背景技术
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是使用本方法时的典型应用示意图。
具体实施方式
下面将结合附图以及具体实施例来详细说明本发明,在此本发明的示意性实施例以及说明用来解释本发明, 但并不作为对本发明的限定。
实施例:
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京白牙智能科技有限公司,未经南京白牙智能科技有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201711102057.2/2.html,转载请声明来源钻瓜专利网。