一种在SolrCloud集群中动态创建域的方法及装置制造方法及图纸

技术编号:14182524 阅读:105 留言:0更新日期:2016-12-14 11:52
本发明专利技术公开了一种在SolrCloud集群中动态创建域的方法及装置,该方法包括:从zookeeper集群中获取全部可用的SolrServer节点标识,组成第一列表;从第一列表中选取一节点标识;向当前选取的节点标识对应的第一可用节点发送第一请求,请求调用第一可用节点提供的第一REST接口创建一新的域;获取第一可用节点返回的创建状态;当创建状态表明成功创建域时,则显示创建成功消息;当创建状态表明未成功创建域、且未成功创建域的原因是第一可用节点导致的,则从第一列表中选取一个未被选取过的节点标识,继续执行向当前选取的节点标识对应的第一可用节点发送第一请求的步骤。用户在创建域时,无需知晓SolrCloud集群的内部结构,且可以自动对创建失败结果进行容错处理。

Method and device for dynamically creating domain in SolrCloud cluster

The invention discloses a method and a device for creating a dynamic domain in a SolrCloud cluster, the method includes: obtaining all available SolrServer node identifier from the zookeeper cluster, consisting of the first list; selecting a node identifier from the first list; to the currently selected node ID corresponding to the first available node sending the first request, create a the new domain of the first REST interface request calls the first available node provides; obtaining the first available node returned to create status; when creating state indicates that the domain is successfully created, displayed successfully create a message; when creating state indicates that the reason is not successful, and did not create a domain successfully created the domain is the first available node to select one. Has not been selected before the node ID from the first list, continue to send to the first available node of the current node ID corresponding to the selected execution First request step. When a user creates a domain, it is not necessary to know the internal structure of the SolrCloud cluster, and the fault tolerance of the failure can be created automatically.

【技术实现步骤摘要】

本专利技术涉及集群
,尤其涉及一种在SolrCloud集群中动态创建域的方法及装置
技术介绍
参见图1所示的SolrCloud集群架构示意图。一个SolrCloud集群由多个Solr服务器(SolrServer)组成,每个SolrServer都可以提供服务,SolrCloud使用zookeeper集群存储并共享配置信息,即各SolrServer节点共享zookeeper的配置信息,且SolrCloud集群的所有状态信息都放在Zookeeper集群中统一维护。SolrCloud数据模型包含集合(Collection)、文档(Doucument)、域(Field)以及约束文档与域的规则的模式(Schema)。集合是最顶层容器,支持分片、多副本;文档汇集在一起构成集合,一篇文档可理解为一条记录;每一篇文档都包含若干域,一个域可理解为一篇文档的一个属性,域是由域名、类型和域值构成的元组。通常,一个域必须在集合中完成定义,才能够被文档所使用,域通常是在SolrCloud创建集合时的配置文件中定义的。由于域通常是在集合创建之前预先在配置文件中定义好的,如果应用系统无法预先定义其需使用哪些域,则需要在SolrCloud运行时定义新的域,如果用户想要在集群运行时创建新的域,需要使集合置为Schemaless运行模式,调用SolrCloud提供的SolrServer节点级的REST API定义新的域。但此种方式存在以下局限:1.需要由用户指定访问集群中的哪个节点(ip地址和端口),用户需要知晓集群内部结构。此外,因SolrCloud集群结构会动态变化,即SolrServer节点可能增加、减少、下线、上线,用户需要获取集群结构的变化以确保访问到可用的节点。2.返回结果在不同情况下结果差别很大,需要完全交由用户处理,用户需要知晓不同情况下所有可能的结果,并根据每个结果进行对应的处理办法。
技术实现思路
有鉴于此,本专利技术实施例的主要目的在于提供一种在SolrCloud集群中动态创建域的方法及装置,用户在创建域时,无需知晓SolrCloud集群的内部结构,且可以自动对创建失败结果进行容错处理。本专利技术实施例提供了一种在SolrCloud集群中动态创建域的方法,包括:从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第一列表;从所述第一列表中选取一节点标识;向当前选取的节点标识对应的第一可用节点发送第一请求,请求调用所述第一可用节点提供的第一REST接口,以通过所述第一REST接口创建一新的域;获取所述第一可用节点返回的创建状态;当所述创建状态表明成功创建域时,则显示用于表示创建成功的消息;当所述创建状态表明未成功创建域、且未成功创建域的原因是所述第一可用节点导致的,则从所述第一列表中选取一个未被选取过的节点标识,继续执行所述向当前选取的节点标识对应的第一可用节点发送第一请求的步骤。可选的,所述获取所述第一可用节点返回的创建状态之后,还包括:判断是否成功获取所述第一可用节点返回的所述创建状态;如果是,则判断所述创建状态是否表明成功创建域;如果否,则执行所述从所述第一列表中选取一个未被选取过的节点标识的步骤。可选的,所述方法还包括:当所述创建状态表明未成功创建域、且未成功创建域的原因不是所述第一可用节点导致的,则从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第二列表;从所述第二列表中选取一节点标识;向当前选取的节点标识对应的第二可用节点发送第二请求,请求调用所述第二可用节点提供的第二REST接口,以通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表;判断所述新的域是否包含在所述域列表中,如果是,则显示用于表示域已被创建的消息。可选的,所述通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表之后,还包括:判断是否成功获取到所述域列表;如果是,则执行所述判断所述新的域是否包含在所述域列表中的步骤;如果否,则从所述第二列表中选取一个未被选取过的节点标识,继续执行所述向当前选取的节点标识对应的第二可用节点发送第二请求的步骤。可选的,所述方法还包括:如果所述新的域不包含在所述域列表中,则显示用于表示域创建失败的消息。本专利技术实施例还提供了一种在SolrCloud集群中动态创建域的装置,包括:第一列表形成单元,用于从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第一列表;第一标识选取单元,用于从所述第一列表中选取一节点标识;新域创建请求单元,用于向当前选取的节点标识对应的第一可用节点发送第一请求,请求调用所述第一可用节点提供的第一REST接口,以通过所述第一REST接口创建一新的域;创建状态获取单元,用于获取所述第一可用节点返回的创建状态;创建成功显示单元,用于当所述创建状态表明成功创建域时,则显示用于表示创建成功的消息;服务节点切点单元,用于当所述创建状态表明未成功创建域、且未成功创建域的原因是所述第一可用节点导致的,则从所述第一列表中选取一个未被选取过的节点标识,继续运行所述新域创建请求单元中的功能。可选的,所述装置还包括:状态结果判断单元,用于判断是否成功获取所述第一可用节点返回的所述创建状态;如果是,则判断所述创建状态是否表明成功创建域;如果否,则利用所述服务节点切点单元实现所述从所述第一列表中选取一个未被选取过的节点标识的功能。可选的,所述装置还包括:第二列表形成单元,用于当所述创建状态表明未成功创建域、且未成功创建域的原因不是所述第一可用节点导致的,则从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第二列表;第二标识选取单元,用于从所述第二列表中选取一节点标识;域列表请求单元,用于向当前选取的节点标识对应的第二可用节点发送第二请求,请求调用所述第二可用节点提供的第二REST接口,以通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表;已创建显示单元,用于判断所述新的域是否包含在所述域列表中,如果是,则显示用于表示域已被创建的消息。可选的,所述装置还包括:列表结果判断单元,用于在所述域列表请求单元通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表之后,判断是否成功获取到所述域列表;如果是,则执行所述判断所述新的域是否包含在所述域列表中的步骤;如果否,则从所述第二列表中选取一个未被选取过的节点标识,继续运行所述域列表请求单元中的功能。可选的,所述装置还包括:创建失败显示单元,用于如果所述新的域不包含在所述域列表中,则显示用于表示域创建失败的消息。本专利技术实施例提供的在SolrCloud集群中动态创建域的方法及装置,用户在使用时,只需知道zookeeper服务地址即可,而且这个地址在集群中是稳定不变的,以便根据zookeeper服务地址从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第一列表;再从第一列表中选择一个SolrServer节点发送请求,请求调用节点提供的REST接口,以通过该RES本文档来自技高网
...
一种在SolrCloud集群中动态创建域的方法及装置

【技术保护点】
一种在SolrCloud集群中动态创建域的方法,其特征在于,包括:从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第一列表;从所述第一列表中选取一节点标识;向当前选取的节点标识对应的第一可用节点发送第一请求,请求调用所述第一可用节点提供的第一REST接口,以通过所述第一REST接口创建一新的域;获取所述第一可用节点返回的创建状态;当所述创建状态表明成功创建域时,则显示用于表示创建成功的消息;当所述创建状态表明未成功创建域、且未成功创建域的原因是所述第一可用节点导致的,则从所述第一列表中选取一个未被选取过的节点标识,继续执行所述向当前选取的节点标识对应的第一可用节点发送第一请求的步骤。

【技术特征摘要】
1.一种在SolrCloud集群中动态创建域的方法,其特征在于,包括:从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第一列表;从所述第一列表中选取一节点标识;向当前选取的节点标识对应的第一可用节点发送第一请求,请求调用所述第一可用节点提供的第一REST接口,以通过所述第一REST接口创建一新的域;获取所述第一可用节点返回的创建状态;当所述创建状态表明成功创建域时,则显示用于表示创建成功的消息;当所述创建状态表明未成功创建域、且未成功创建域的原因是所述第一可用节点导致的,则从所述第一列表中选取一个未被选取过的节点标识,继续执行所述向当前选取的节点标识对应的第一可用节点发送第一请求的步骤。2.根据权利要求1所述的方法,其特征在于,所述获取所述第一可用节点返回的创建状态之后,还包括:判断是否成功获取所述第一可用节点返回的所述创建状态;如果是,则判断所述创建状态是否表明成功创建域;如果否,则执行所述从所述第一列表中选取一个未被选取过的节点标识的步骤。3.根据权利要求1所述的方法,其特征在于,所述方法还包括:当所述创建状态表明未成功创建域、且未成功创建域的原因不是所述第一可用节点导致的,则从zookeeper集群中获取SolrCloud集群中当前全部可用的SolrServer节点的标识,组成第二列表;从所述第二列表中选取一节点标识;向当前选取的节点标识对应的第二可用节点发送第二请求,请求调用所述第二可用节点提供的第二REST接口,以通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表;判断所述新的域是否包含在所述域列表中,如果是,则显示用于表示域已被创建的消息。4.根据权利要求3所述的方法,其特征在于,所述通过所述第二REST接口获取所述第二可用节点中的已被创建域的域列表之后,还包括:判断是否成功获取到所述域列表;如果是,则执行所述判断所述新的域是否包含在所述域列表中的步骤;如果否,则从所述第二列表中选取一个未被选取过的节点标识,继续执行所述向当前选取的节点标识对应的第二可用节点发送第二请求的步骤。5.根据权利要求3所述的方法,其特征在于,所述方法还包括:如果所述新的域不包含在所述域列表中,则显示用于表示域创建失败的消息。6.一种在SolrCloud集群中动态创建域的装置,其特征在于,包括:第一列表形成单元,用于从zookeeper集...

【专利技术属性】
技术研发人员:李旭嘉王仁重王昭杨全文岳松颂
申请(专利权)人:中国农业银行股份有限公司
类型:发明
国别省市:北京;11

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1