掌桥专利:专业的专利平台
掌桥专利
首页

分布式系统配置项的管理方法及管理系统

文献发布时间:2023-06-19 12:14:58


分布式系统配置项的管理方法及管理系统

技术领域

本发明涉及计算机技术领域,尤其涉及分布式系统配置项的管理方法及管理系统。

背景技术

目前,基于互联网建设的系统越来越复杂化,很多系统变得庞大而臃肿,不好管理。与此同时,随着微服务化普及,许多公司将大系统拆分成许多职责单一的轻系统,即以分布式系统替代原有的集中式系统。而这些轻系统都依赖配置项来设定自身系统的属性。由于配置项的变更涉及数量众多的轻系统,提高了设定或变更系统配置项的复杂度,导致工作量成倍增长。因此,用于管理分布式系统配置项的配置中心产品应时而生,成为分布式系统建设中的必备产品之一,企业化的配置中心产品也如雨后春笋不断涌现。

配置中心产品一般由服务端和客户端组成,其中,服务端负责管理配置项、存储配置项,客户端(即分布式系统中的任一需要管理配置项的子系统)负责从服务端获取配置项,然后使用配置项。目前市场中,阿波罗配置中心等一些开源的配置中心产品可以为分布式系统提供配置项变更等管理功能。其中,配置项变更的方式有两种:修改配置值和切换配置项版本。修改配置值就是将配置项的旧值修改成一个新值;切换配置项版本则是对一个配置项预先定义多个版本,一个配置项版本对应于一个配置值,变更选择生效的配置值。

但是,这种配置项变更的方式本质是在服务端指定生效的配置值,然后由客户端从服务端加载配置项变更之后的一个配置值,再更新本地缓存中对应的配置值。即,上述方式是配置中心服务端决定配置项生效的配置值,由于一个配置项对应一个生效的配置值,所以配置中心客户端在同一时刻只能使用相同的配置值,无法在配置中心客户端根据不同的使用方在一个或多个属性上使用不同的配置值,以展现不同的特性。

发明内容

本发明的目的在于提供分布式系统配置项的管理方法及管理系统,解决了使用现有的配置中心产品配置分布式系统时,客户端在同一时刻只能使用相同的配置值,导致客户端无法根据不同的使用方在一个或多个属性上使用不同的配置值的问题。为实现上述目的,本发明提供如下技术方案:

一种分布式系统配置项的管理方法,包括:

客户端从服务端获取并加载配置项,其中,所述配置项包括配置项名称、一个默认配置值和至少一份个性化配置数据,所述个性化配置数据包括一组对应的规则结构体和个性化配置值;

客户端利用内置的规则引擎解析所述规则结构体,并根据解析结果选择生效一个个性化配置值或者选择生效默认配置值。

进一步地,客户端以长轮询的方式从服务端获取并加载需要的配置项。

进一步地,所述规则结构体包括至少一个条件组,所述条件组由一个或多个条件语句组成,所述条件语句包括:规则输入项、函数、操作符和待匹配值,当规则输入项按照函数解析后得到的值与待匹配值之间满足操作符描述的性质时,所述条件语句的结果为真,否则结果为假。

较佳地,条件组内相邻的两个条件语句之间的组合方式包括与/或,任一条件组基于每个条件语句的结果以及条件语句之间的组合方式获取解析结果;

规则结构体内相邻的两个条件组之间的组合方式包括与/或,任一规则结构体基于每个条件组的结果以及条件组之间的组合方式获取解析结果。

优选地,客户端利用内置的规则引擎解析所述规则结构体,并根据解析结果选择生效一个个性化配置值或者选择生效默认配置值的方法包括:

客户端调用内置的规则引擎逐一解析所述规则结构体;其中,所述规则引擎解析所述规则结构体时,首先加载所述规则结构体中规则输入项的入参数据;

判断当前规则结构体的解析结果是否为真,若为真,则停止解析,并选择生效当前规则结构体对应的个性化配置值;若不为真,则解析下一个规则结构体,并重新判断解析结果;

若最后一个规则结构体的解析结果为假,则选择生效默认配置值。

较佳地,所述规则引擎加载的所述规则输入项的入参数据来源包括以下各项中的至少一项:

客户端所在集群的数据;客户端所在运行环境的数据;客户端被访问时的访问请求中的数据;客户端从其他系统获取到的数据。

优选地,所述个性化配置数据还包括序号,每个所述序号对应一组规则结构体和个性化配置值;

客户端按照所述序号的顺序,利用内置的规则引擎逐一解析所述序号对应的规则结构体。

一种分布式系统配置项的管理系统,包括服务端与客户端,所述服务端存储有配置项,所述客户端包括加载模块、规则引擎以及更新模块,其中,

所述加载模块用于从服务端获取并加载配置项,其中,所述配置项包括配置项名称、一个默认配置值和至少一份个性化配置数据,所述个性化配置数据包括一组对应的规则结构体和个性化配置值;

所述规则引擎用于解析所述规则结构体,并根据解析结果选择一个配置值输出给所述更新模块,其中,所述配置值为默认配置值或者个性化配置值;

所述更新模块用于生效所述规则引擎输出的配置值。

进一步地,所述服务端还用于新增配置项、删除配置项以及修改配置项。

一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,所述计算机可读程序指令用于执行上述分布式系统配置项的管理方法。

与现有技术相比,本发明提供的分布式系统配置项的管理方法及管理系统具有以下有益效果:

本发明提供的分布式系统配置项的管理方法,使客户端从服务端获取的配置项包括至少一份个性化配置数据,可以针对所处使用场景进行动态个性化选择要生效的配置值。客户端内置的规则引擎根据使用方不同的实际情况灵活解析规则结构体并根据结果选择最适当的配置值,使客户端可以在不同应用中更好地适应应用场景特点,进而提升了整个分布式系统的整体表现。

本发明提供的分布式系统配置项的管理系统,采用上述方法,可以使客户端掌握设定配置值的主动权,以灵活设定配置值,进而提高客户端针对使用方的个性化配置水平,也可以使服务端和客户端的分工更加合理,提高运行效率和整体表现。

附图说明

此处所说明的附图用来提供对本发明的进一步理解,构成本发明的一部分,本发明的示意性实施例及其说明用于解释本发明,并不构成对本发明的不当限定。在附图中:

图1为本发明实施例中分布式系统配置项管理方法的流程示意图;

图2为本发明实施例中客户端从服务端获取并加载所需配置项的示意图;

图3为本发明实施例中配置项数据结构的示意图;

图4为本发明实施例中配置项规则引擎解析规则结构体的流程示意图;

图5为本发明实施例中规则结构体的数据结构示意图;

图6为本发明实施例中对一个条件语句进行解析的流程示意图。

具体实施方式

为使本发明的上述目的、特征和优点能够更加明显易懂,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有作出创造性劳动的前提下所获得的所有其它实施例,均属于本发明保护的范围。具体实施方式中,含有数字“一”的,不应当然认定其具有数量意义上的限定作用。

实施例一

请参阅图1-图4,本发明实施例提供的分布式系统配置项的管理方法包括:

客户端从服务端获取并加载配置项,其中,配置项包括配置项名称、一个默认配置值和至少一份个性化配置数据,个性化配置数据包括一组对应的规则结构体和个性化配置值;

客户端利用内置的规则引擎解析规则结构体,并根据解析结果选择生效一个个性化配置值或者选择生效默认配置值。

客户端从服务端获取并加载至少一份配置项,每个配置项包括至少一份个性化配置数据,解决了现有的配置中心产品配置分布式系统的配置值时,全部由配置中心服务端下发,客户端无法针对所处使用场景进行动态个性化选择要生效配置值的问题。客户端的规则引擎在应用场景中解析规则结构体并根据结果选择最适当的配置值,增强了客户端的适应性和个性化水平。同时解决了客户端在每次切换配置值时都必须与服务器服务端通信造成不必要的通信资源浪费问题。

请参阅图2,客户端以长轮询的方式从服务端获取并加载需要的配置项。

本领域技术人员应了解的是,长轮询是指,客户端发起长轮询请求,该请求在预设的时长内有效,此时如果服务端有相关数据,会返回相关数据并保持请求,若在请求的有效时间内相关数据有更新,则将更新后的数据返回给客户端;此时如果服务端没有相关数据,会保持请求,直到服务端有相关数据后返回相关数据;若请求超出预设的有效时长,则客户端会立即再次发起长轮询。

具体实施过程中,长轮询可通过监听线程和加载线程实现。监听线程的最长等待时间可自主设定,例如设定为十秒,若十秒内新数据到达则客户端通过加载线程从服务器端加载相关数据至本地并立即再次发起下一次长轮询,若十秒内没有新数据到达,则返回超时信息并立即再次发起下一次长轮询。这种方式是对拉模式的一个优化,解决了拉模式数据通知不及时,以及减少了大量的无效轮询次数。

请参阅图5,规则结构体包括至少一个条件组,条件组由一个或多个条件语句组成,条件语句包括:规则输入项、函数、操作符和待匹配值,当规则输入项按照函数解析后得到的值与待匹配值之间满足操作符描述的性质时,条件语句的结果为真,否则结果为假。

如图6所示:“a截取(1,2)等于上海”就是一个条件语句,“a”为规则输入项,“截取(1,2)”为函数,“等于”为操作符,“上海”为待匹配值。当对规则输入项执行截取(1,2)函数后得到的值为“上海”,与待匹配值“上海”满足操作符“等于”描述的性质,解析结果为真;当规则输入项执行截取(1,2)函数后得到的值为“南京”,与待匹配值“上海”不满足操作符“等于”描述的性质,解析结果为假。

规则引擎解析规则结构体时,规则引擎会加载规则结构体中规则输入项的入参数据。这些入参数据一般为与待解析的规则结构体相关的文本数据,包括以下各项中的至少一项:客户端所在集群的数据;客户端所在运行环境的数据;客户端被其他系统(客户端)访问时的访问请求中的数据;客户端从其他系统(客户端)获取到的数据,例如当前客户端可以为用户系统,其他客户端可以为权限系统、标签系统等;还可以是客户端使用者的自定义数据。接受多种数据来源可以使规则引擎的判断更加灵活,能使客户端根据使用方的数据针对性地对不同使用场景进行个性化适配,选择生效相同或不同的配置值,以满足不同使用方的需求。

规则引擎由推理引擎发展而来,是一种嵌入在应用程序中的组件,实现了将配置值决策从应用程序代码中分离出来,并使用预定义的语义模块编写配置值决策。规则引擎通过接收规则输入项的入参数据、解释规则结构体,并根据规则结构体的解析结果确定配置值。此外,规则引擎作为一个整体负责规则结构体的解析,使整个客户端系统不同组成部分之间的分工明确。本实施例中的规则引擎可以通过文本解析系统实现,能够从规则结构体中分类识别规则输入项、操作符、函数以及待匹配数据,比如“a截取(1,2)等于上海”中“a”被识别为规则输入项,“截取”被识别为函数,“等于”被识别为操作符,“上海”被识别为待匹配数据。本领域技术人员可以理解,以上仅为举例,不作具体限制,具体实施中,规则输入项可以是“a”、“av”、“bv”等变量分别对应不同的入参数据、操作符可以为“大于”、“小于”、“等于”和“不等于”等,函数可以为“截取”和“权重”等,待匹配数据也可以为任意地点、天气、日期等字符。

其中,条件组内相邻的两个条件语句之间的组合方式包括与/或,任一条件组基于每个条件语句的结果以及条件语句之间的组合方式获取解析结果;

规则结构体内相邻的两个条件组之间的组合方式包括与/或,任一规则结构体基于每个条件组的结果以及条件组之间的组合方式获取解析结果。例如,当某一条件为必要不充分条件时,可以将本条件与条件组内其他条件之间的组合方式设置成“与”,规则结构体内本条件组与其他条件组之间的组合方式也设置成“与”,即,只有本条件结果为真时,对应的个性化配置值才生效;当某一条件为充分不必要条件时,可以将本条件与条件组内其他条件之间的组合方式设置成“或”,规则结构体内本条件组与其他条件组之间的组合方式也设置成“或”,即,只要本条件结果为真时,对应的个性化配置值就生效。灵活设定条件组内条件之间的逻辑依赖关系,基于不同客户端具有个性化的入参数据,实现客户端配置值的个性化适配,后期维护也可简洁明了地了解各组内条件的重要性及相关性。

进一步地,本发明实施例提供的分布式系统配置项的管理方法中,客户端利用内置的规则引擎解析规则结构体,并根据解析结果选择生效一个个性化配置值或者选择生效默认配置值的方法包括:

客户端调用内置的规则引擎逐一解析规则结构体;其中,规则引擎解析规则结构体时,首先加载规则结构体中规则输入项的入参数据;

判断当前规则结构体的解析结果是否为真,若为真,则停止解析,并选择生效当前规则结构体对应的个性化配置值;若不为真,则解析下一个规则结构体,并重新判断解析结果;

若直到最后一个规则结构体的解析结果都为假,则选择生效默认配置值。

客户端利用内置的规则引擎每次解析规则结构体时,都会先初始化,进行数据填充,加载规则结构体中规则输入项的入参数据,对规则结构体进行解析并输出解析结果。通常情况下,填充的入参数据会多于解析所需数据,解析过程可正常按照预定的规则判断解析结果为真或假。若必要数据缺失,则规则解析过程异常或解析失败,则返回的解析结果为假,并跳过当前规则结构体,进行下一个规则结构体的解析。避免因解析失败返回影响配置值判断的的异常结果。若全部规则结构体的解析结构都为假,则生效默认配置值,以保障客户端的基本运行,满足可靠性和安全性的要求。

在具体实施中,为了更好地规定个性化配置数据被解析处理的顺序,个性化配置数据还可以包括序号,每个序号对应一组规则结构体和个性化配置值;

客户端按照序号的顺序,利用内置的规则引擎逐一解析序号对应的规则结构体。

利用序号对个性化配置数据的顺序进行排序,实现了对个性化配置数据中个性化配置值的优先级设定,从而确保客户端基于内置规则引擎逐一解析规则结构体的过程中,首先选中的是最优的配置值。另外,对不同个性化配置数据进行排序也可使管理作业更加直观,提升管理效率。

实施例二

与上述实施例一相对应的,本申请实施例还提供一种分布式系统配置项的管理系统,其中,本实施例中,与实施例一相同或相应的内容,请参考上文介绍,后续不再赘述。

本发明实施例提供的分布式系统配置项的管理系统包括服务端与客户端,服务端存储有配置项客户端包括加载模块、规则引擎以及更新模块,其中,

加载模块用于从服务端获取并加载配置项,其中,配置项包括配置项名称、一个默认配置值和至少一份个性化配置数据,个性化配置数据包括一组对应的规则结构体和个性化配置值;

规则引擎用于解析规则结构体,并根据解析结果选择一个配置值输出给更新模块,其中,配置值为默认配置值或者个性化配置值;

更新模块用于生效规则引擎输出的配置值。

本领域技术人员可以理解的是,管理系统中的客户端即为分布式系统中的任一需要管理配置项的子系统,该子系统会基于自身程序需要的配置项被预设有对应的配置项访问权限,客户端只可以访问专属配置项和公共配置项,提高了数据安全性,也避免服务端为每个客户端单独配置全部数据造成的空间浪费。

除此之外,服务端存储采用配置文件的方式存储配置项,且一个配置文件中包含一个或多个配置项,服务端还可用于新增配置项、删除配置项以及修改配置项,以提供配置项的统一管理,但是本领域技术人员可以知晓的是,服务端还可以用于抓取、记忆存储不同使用方针对客户端设定的个性化配置值,以便于使用方找回丢失的配置数据。可见,本实施例提供的分布式系统配置项的管理系统,既能标准化配置流程,减少因管理源杂乱导致的不同管理源上传的数据冲突或数据缺失的问题,又能将配置项的中配置值的选择权限交由使用方,让使用方能更快速、个性化地管理自己的配置项。

本发明提供的分布式系统配置项的管理系统,采用上述实施例一提供的方法,达到了现有分布式系统很好满足不同使用方个性化需求的效果。与现有技术相比,本发明实施例提供的分布式系统配置项的管理系统的有益效果与上述实施例一提供的分布式系统配置项的管理方法的有益效果相同,在此不做赘述。

实施例三

本发明实施例提供一种计算机可读存储介质,具有存储在其上的计算机可读程序指令,计算机可读程序指令用于执行上述实施例一中的分布式系统配置项的管理方法,包括执行:从服务端获取并加载配置项,其中,配置项包括配置项名称、一个默认配置值和至少一份个性化配置数据,个性化配置数据包括一组对应的规则结构体和个性化配置值;利用内置的规则引擎解析规则结构体,并根据解析结果选择生效一个个性化配置值或者选择生效默认配置值。当客户端安装有上述计算机可读存储介质后,即可针对所处使用场景进行动态个性化选择要生效配置值,以增强客户端的适应性和个性化水平。

本发明实施例提供的计算机可读存储介质例如可以是——但不限于——电、磁、光、电磁、红外线、或半导体的系统、系统或器件,或者任意以上的组合。计算机可读存储介质的更具体的例子可以包括但不限于:具有一个或多个导线的电连接、便携式计算机磁盘、硬盘、随机访问存储器(RAM)、只读存储器(ROM)、可擦式可编程只读存储器(EPROM或闪存)、光纤、便携式紧凑磁盘只读存储器(CD-ROM)、光存储器件、磁存储器件、或者上述的任意合适的组合。在本实施例中,计算机可读存储介质可以是任何包含或存储程序的有形介质,该程序可以被指令执行系统、系统或者器件使用或者与其结合使用。计算机可读存储介质上包含的程序代码可以用任何适当的介质传输,包括但不限于:电线、光缆、RF(射频)等等,或者上述的任意合适的组合。

上述计算机可读存储介质可以是电子设备中所包含的;也可以是单独存在,而未装配入电子设备中。

上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得电子设备:获取至少两个网际协议地址;向节点评价设备发送包括所述至少两个网际协议地址的节点评价请求,其中,所述节点评价设备从所述至少两个网际协议地址中,选取网际协议地址并返回;接收所述节点评价设备返回的网际协议地址;其中,所获取的网际协议地址指示内容分发网络中的边缘节点。

或者,上述计算机可读存储介质承载有一个或者多个程序,当上述一个或者多个程序被电子设备执行时,使得该电子设备:接收包括至少两个网际协议地址的节点评价请求;从所述至少两个网际协议地址中,选取网际协议地址;返回选取出的网际协议地址;其中,接收到的网际协议地址指示内容分发网络中的边缘节点。

可以以一种或多种程序设计语言或其组合来编写用于执行本公开的操作的计算机程序代码,上述程序设计语言包括面向对象的程序设计语言—诸如Java、Smalltalk、C++,还包括常规的过程式程序设计语言—诸如“C”语言或类似的程序设计语言。程序代码可以完全地在用户计算机上执行、部分地在用户计算机上执行、作为一个独立的软件包执行、部分在用户计算机上部分在远程计算机上执行、或者完全在远程计算机或服务器上执行。在涉及远程计算机的情形中,远程计算机可以通过任意种类的网络——包括局域网(LAN)或广域网(WAN)—连接到用户计算机,或者,可以连接到外部计算机(例如利用因特网服务提供商来通过因特网连接)。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,该模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

描述于本公开实施例中所涉及到的模块可以通过软件的方式实现,也可以通过硬件的方式来实现。其中,模块的名称在某种情况下并不构成对该单元本身的限定,例如,加载模块规则引擎还可以被描述为“用于从服务端获取并加载配置项的模块”。

本发明提供的计算机可读存储介质,存储有用于执行上述分布式系统配置项的管理方法的计算机可读程序指令,解决了现有分布式系统无法很好满足不同使用方个性化需求的问题。与现有技术相比,本发明实施例提供的计算机可读存储介质的有益效果与上述实施例一提供的分布式系统配置项的管理方法的有益效果相同,在此不做赘述。

应当理解,本公开的各部分可以用硬件、软件、固件或它们的组合来实现。在上述实施方式的描述中,具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

以上所述,仅为本发明的具体实施方式,但本发明的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本发明的保护范围之内。因此,本发明的保护范围应以所述权利要求的保护范围为准。

相关技术
  • 分布式系统配置项的管理方法及管理系统
  • 分布式系统管理方法、装置、存储介质和分布式管理系统
技术分类

06120113229024