CN102591934A - 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法 - Google Patents

一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法 Download PDF

Info

Publication number
CN102591934A
CN102591934A CN2011104403915A CN201110440391A CN102591934A CN 102591934 A CN102591934 A CN 102591934A CN 2011104403915 A CN2011104403915 A CN 2011104403915A CN 201110440391 A CN201110440391 A CN 201110440391A CN 102591934 A CN102591934 A CN 102591934A
Authority
CN
China
Prior art keywords
shards
zookeeper
solr
service
automatic expansion
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN2011104403915A
Other languages
English (en)
Inventor
杨佩
朱力鹏
饶玮
王刚
胡斌
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
State Grid Electric Power Research Institute
Original Assignee
State Grid Electric Power Research Institute
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by State Grid Electric Power Research Institute filed Critical State Grid Electric Power Research Institute
Priority to CN2011104403915A priority Critical patent/CN102591934A/zh
Publication of CN102591934A publication Critical patent/CN102591934A/zh
Pending legal-status Critical Current

Links

Images

Abstract

一种基于Zookeeper实现多个SolrShards自动扩展与切换的方法。当数据量比较大时,利用SolrSharding作为扩展策略,但当多个Shards当中的某一个宕掉时,整个服务将无法使用。本文撰写的方法就是对每一个活动的Shards都在Zookeeper上注册,应用程序维护一个Zookeeper上活动节点的列表并监听Zookeeper的消息,一旦有新的Shard加入或者有Shard宕掉,该列表会相应变化,在查询请求Solr服务时根据该列表,获取活动的Shards进行查询,实现了SolrShards的自动扩展,避免了因为某一个Shard宕掉致使搜索服务无法工作的情况,也提供了自动扩展的功能,提高工作效率。

Description

一种基于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自动扩展和切换功能。

Claims (1)

1.一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法,其特征在于,包括以下步骤:注册节点,修改Solr服务,使Solr服务在启动时自动将自身地址注册为Zookeeper节点;
修改应用程序,在启动时开始监听Zookeeper消息,获取在Zookeeper中注册的Shards节点;
维护Shards列表,监听程序维护一个活动的Shards列表,在收到Zookeeper节点变动的消息时,重新生成Shards列表;
生成请求地址,修改应用程序,在查询时要据Shards列表生成所请求的Solr服务地址。
CN2011104403915A 2011-12-23 2011-12-23 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法 Pending CN102591934A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN2011104403915A CN102591934A (zh) 2011-12-23 2011-12-23 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN2011104403915A CN102591934A (zh) 2011-12-23 2011-12-23 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法

Publications (1)

Publication Number Publication Date
CN102591934A true CN102591934A (zh) 2012-07-18

Family

ID=46480575

Family Applications (1)

Application Number Title Priority Date Filing Date
CN2011104403915A Pending CN102591934A (zh) 2011-12-23 2011-12-23 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法

Country Status (1)

Country Link
CN (1) CN102591934A (zh)

Cited By (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345519A (zh) * 2013-07-11 2013-10-09 华为技术有限公司 无共享分布式数据库的数据分布的方法和装置
CN103500111A (zh) * 2013-10-11 2014-01-08 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN103729463A (zh) * 2014-01-14 2014-04-16 赛特斯信息科技股份有限公司 基于Lucene和Solr实现全文检索的方法
CN104636135A (zh) * 2014-12-31 2015-05-20 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
CN105656653A (zh) * 2014-11-14 2016-06-08 华为技术有限公司 分布式协调系统中新增节点的入网方法、装置和系统
CN106230625A (zh) * 2016-07-26 2016-12-14 中国农业银行股份有限公司 一种在SolrCloud集群中动态创建域的方法及装置
CN106295399A (zh) * 2016-08-02 2017-01-04 浪潮电子信息产业股份有限公司 一种solr集群的访问权限控制方法
CN106648897A (zh) * 2016-12-28 2017-05-10 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的solr集群扩展方法及系统
WO2017177800A1 (zh) * 2016-04-15 2017-10-19 中兴通讯股份有限公司 Solr集群自动扩容方法及系统、计算机存储介质
CN108599971A (zh) * 2017-12-22 2018-09-28 金蝶软件(中国)有限公司 配置信息处理方法、系统、计算机设备和存储介质

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977124A (zh) * 2010-11-05 2011-02-16 山东中创软件工程股份有限公司 基于ZooKeeper技术的业务集群方法及系统

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101977124A (zh) * 2010-11-05 2011-02-16 山东中创软件工程股份有限公司 基于ZooKeeper技术的业务集群方法及系统

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
李汝光,赵俊: "基于ZooKeeper的分布式缓存的设计与实现", 《绵阳师范学院学报》 *
爱开卷360: "SolrCloud:基于Solr和Zookeeper的分布式搜索", 《HTTP://WWW.CNBLOGS.COM/IBOOK360/ARCHIVE/2011/11/24/2261930.HTML》 *

Cited By (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103345519B (zh) * 2013-07-11 2017-07-21 华为技术有限公司 无共享分布式数据库的数据分布的方法和装置
CN103345519A (zh) * 2013-07-11 2013-10-09 华为技术有限公司 无共享分布式数据库的数据分布的方法和装置
CN103500111A (zh) * 2013-10-11 2014-01-08 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN103500111B (zh) * 2013-10-11 2016-09-28 北京奇虎科技有限公司 一种基于zookeeper的信息配置方法及装置
CN103729463A (zh) * 2014-01-14 2014-04-16 赛特斯信息科技股份有限公司 基于Lucene和Solr实现全文检索的方法
CN105656653B (zh) * 2014-11-14 2019-07-19 华为技术有限公司 分布式协调系统中新增节点的入网方法、装置和系统
CN105656653A (zh) * 2014-11-14 2016-06-08 华为技术有限公司 分布式协调系统中新增节点的入网方法、装置和系统
CN104636135B (zh) * 2014-12-31 2018-05-04 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
CN104636135A (zh) * 2014-12-31 2015-05-20 北京奇虎科技有限公司 一种节点访问方法和系统、客户端代理和客户端
WO2017177800A1 (zh) * 2016-04-15 2017-10-19 中兴通讯股份有限公司 Solr集群自动扩容方法及系统、计算机存储介质
CN107302444A (zh) * 2016-04-15 2017-10-27 中兴通讯股份有限公司 企业级搜索应用服务器集群自动扩容方法及装置
CN107302444B (zh) * 2016-04-15 2022-03-25 中兴通讯股份有限公司 企业级搜索应用服务器集群自动扩容方法及装置
CN106230625A (zh) * 2016-07-26 2016-12-14 中国农业银行股份有限公司 一种在SolrCloud集群中动态创建域的方法及装置
CN106230625B (zh) * 2016-07-26 2019-05-31 中国农业银行股份有限公司 一种在SolrCloud集群中动态创建域的方法及装置
CN106295399A (zh) * 2016-08-02 2017-01-04 浪潮电子信息产业股份有限公司 一种solr集群的访问权限控制方法
CN106295399B (zh) * 2016-08-02 2020-03-06 浪潮电子信息产业股份有限公司 一种solr集群的访问权限控制方法
CN106648897A (zh) * 2016-12-28 2017-05-10 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的solr集群扩展方法及系统
CN106648897B (zh) * 2016-12-28 2019-11-22 厦门市美亚柏科信息股份有限公司 一种支持均衡资源的solr集群扩展方法及系统
CN108599971A (zh) * 2017-12-22 2018-09-28 金蝶软件(中国)有限公司 配置信息处理方法、系统、计算机设备和存储介质

Similar Documents

Publication Publication Date Title
CN102591934A (zh) 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法
US20200195511A1 (en) Network management method and related device
WO2017185961A1 (zh) 一种服务发现的处理方法及装置
CN106059825A (zh) 一种分布式系统及配置方法
WO2017028697A1 (zh) 计算机集群的扩容和缩容方法及设备
CN102291416B (zh) 一种客户端与服务器端双向同步的方法及系统
CN111447103B (zh) 虚拟设备的管理系统及方法、电子设备及介质
US20180270145A1 (en) Node connection method and distributed computing system
US20070124437A1 (en) Method and system for real-time collection of log data from distributed network components
EP3248361B1 (en) Timers in stateless architecture
JP2020537449A (ja) 通信ネットワークにおけるサービス登録
CN102360324B (zh) 故障恢复方法和用于故障恢复的设备
CN103118130A (zh) 一种用于分布式服务的集群管理方法和系统
EP3843341A1 (en) Method and system for providing metadata information of a network function service and related device
TW201724001A (zh) 全域資訊獲取、處理及更新方法、裝置和系統
US9952888B2 (en) Method and system to dynamically instantiate virtual repository for any services
CN104219069A (zh) 访问频率控制方法、装置及控制系统
CN105141676A (zh) 一种多服务器下的会话保持共享方法及系统
CN112804289A (zh) 一种资源同步方法、装置、设备及存储介质
WO2012110079A1 (en) Distribution of data processing
WO2017000669A1 (zh) 域名资源记录缓存的集中管控方法、装置和相关设备
CN104714923A (zh) 一种实现设备共享的方法和装置
US20190124162A1 (en) Automatic server cluster discovery
CN107306290B (zh) 一种会话session共享方法及应用服务器
CN104462235A (zh) 一种基于Restful Web Service的物联网通用事件服务机制

Legal Events

Date Code Title Description
C06 Publication
PB01 Publication
C10 Entry into substantive examination
SE01 Entry into force of request for substantive examination
C12 Rejection of a patent application after its publication
RJ01 Rejection of invention patent application after publication

Application publication date: 20120718