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集群结构会动态变化,即SolrS ...
【技术保护点】
一种在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
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。