CN102591934A - 一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法 - Google Patents
一种基于Zookeeper实现多个Solr Shards自动扩展与切换的方法 Download PDFInfo
- 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
Links
Images
Abstract
一种基于Zookeeper实现多个SolrShards自动扩展与切换的方法。当数据量比较大时,利用SolrSharding作为扩展策略,但当多个Shards当中的某一个宕掉时,整个服务将无法使用。本文撰写的方法就是对每一个活动的Shards都在Zookeeper上注册,应用程序维护一个Zookeeper上活动节点的列表并监听Zookeeper的消息,一旦有新的Shard加入或者有Shard宕掉,该列表会相应变化,在查询请求Solr服务时根据该列表,获取活动的Shards进行查询,实现了SolrShards的自动扩展,避免了因为某一个Shard宕掉致使搜索服务无法工作的情况,也提供了自动扩展的功能,提高工作效率。
Description
技术领域
本发明方法属于信息技术领域,是一种优化方法,该方法可以提高搜索服务的可靠性和扩展性。
背景技术
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服务地址。
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)
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)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977124A (zh) * | 2010-11-05 | 2011-02-16 | 山东中创软件工程股份有限公司 | 基于ZooKeeper技术的业务集群方法及系统 |
-
2011
- 2011-12-23 CN CN2011104403915A patent/CN102591934A/zh active Pending
Patent Citations (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN101977124A (zh) * | 2010-11-05 | 2011-02-16 | 山东中创软件工程股份有限公司 | 基于ZooKeeper技术的业务集群方法及系统 |
Non-Patent Citations (2)
Title |
---|
李汝光,赵俊: "基于ZooKeeper的分布式缓存的设计与实现", 《绵阳师范学院学报》 * |
爱开卷360: "SolrCloud:基于Solr和Zookeeper的分布式搜索", 《HTTP://WWW.CNBLOGS.COM/IBOOK360/ARCHIVE/2011/11/24/2261930.HTML》 * |
Cited By (19)
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 |