CN110825358B - 一种基于前序优先匹配规则多层级***配置服务设计方法 - Google Patents
一种基于前序优先匹配规则多层级***配置服务设计方法 Download PDFInfo
- Publication number
- CN110825358B CN110825358B CN201911156528.7A CN201911156528A CN110825358B CN 110825358 B CN110825358 B CN 110825358B CN 201911156528 A CN201911156528 A CN 201911156528A CN 110825358 B CN110825358 B CN 110825358B
- Authority
- CN
- China
- Prior art keywords
- configuration
- value
- path
- service
- level
- 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.)
- Active
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F8/00—Arrangements for software engineering
- G06F8/20—Software design
- G06F8/22—Procedural
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Information Transfer Between Computers (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例公开了一种基于前序优先匹配规则多层级***配置服务设计方法,包括如下步骤:根据配置项的业务层级,将每一层级作为一个配置单元,层级的名称即是配置单元的名称,层级的值即为所述配置单元的配置项的值;通过多项所述配置单元的名称组成的配置路径的Hash值来作为所述配置项的Key值来存储;采用统一的基于Http协议的Restful风格的服务接口来获取与应用场景最大匹配度的配置。本发明实施例能够支持一个配置适配多场景,也支持多场景多个配置的情况,基于前序优先匹配规则的多层级***配置,对于用户开发的一个业务***,通过个性化***统一配置进行个性化定制,能够满足多租户对业务***的数据、业务功能、呈现样式等多方面的个性化需求。
Description
技术领域
本发明实施例涉及计算机信息技术领域,具体涉及一种基于前序优先匹配规则多层级***配置服务设计方法。
背景技术
以SaaS为主的应用场景,客户对业务应用***的个性化定制需求和更新频率有很高的要求,现有的配置服务,有以下两种配置管理方式:
一种是传统的配置文件方式,将配置项存储在配置文件中,这种方式对于配置读写、查询的效率都比较低,在云计算时代已经基本不用。
另一种是使用数据库配置表来存储配置,包括有关系型数据库和Nosql数据库,提供简单的key/value匹配方式,这种方式对查询修改效率相比文件方式有所提高,但方式单一,只能处理固定值的配置项,对业务的个性化配置需求支持能力不足,对业务较复杂的场景,对key的管理成本比较高。
发明内容
为此,本发明实施例提供一种基于前序优先匹配规则多层级***配置服务设计方法,以解决现有技术中的配置服务只能处理固定值的配置项,对业务的个性化配置需求支持能力不足,对业务较复杂的场景,对key的管理成本比较高的问题。
为了实现上述目的,本发明的实施方式提供如下技术方案:
在本发明实施例的一个方面,提供了一种基于前序优先匹配规则多层级***配置服务设计方法,包括如下步骤:
根据配置项的业务层级,将每一层级作为一个配置单元,层级的名称即是配置单元的名称,层级的值即为所述配置单元的配置项的值;
通过多项所述配置单元的名称组成的配置路径的Hash值来作为所述配置项的Key值来存储;
采用统一的基于Http协议的Restful风格的服务接口来获取与应用场景最大匹配度的配置。
作为本发明一种优选地方案,一个配置项由多个配置层级对应的一组配置单元组成的配置路径进行配置。
作为本发明一种优选地方案,所述配置项的值为任意的Json数据。
作为本发明一种优选地方案,所述配置单元的名称取值包括:租户、应用***、模块、用户和组件,并支持自定义扩展。
作为本发明一种优选地方案,所述配置路径由一系列有序的配置单元的名称和值构成的键-值对组成,且优先匹配前序路径项。
作为本发明一种优选地方案,所述配置路径的各路径项使用通配符来表示匹配所有值。
作为本发明一种优选地方案,所述多层级***配置服务采用统一的配置参数存、取接口,使用Redis数据库存储数据,并开启持久化。
作为本发明一种优选地方案,所述配置项的匹配规则采用前序优先原则下最大匹配度算法,即为优先匹配所述配置路径中靠前面的所述配置单元。
作为本发明一种优选地方案,所述前序优先最长匹配递归算法的最多匹配的匹配次数为:
其中,p为最多匹配的匹配次数;
N为配置路径中配置单元的个数。
作为本发明一种优选地方案,所述Key值使用所述配置路径的各项值的Hash值加上所述配置路径的各项名称构成。
本发明的实施方式具有如下优点:
本发明实施例能够支持一个配置适配多场景,也支持多场景多个配置的情况,基于前序优先匹配规则的多层级***配置,对于用户开发的一个业务***、模块甚至业务组件,在不修改代码,不重新构建、部署的情况下,通过个性化***统一配置进行个性化定制,来满足多租户对业务***的数据、业务功能、呈现样式等多方面的个性化需求。
附图说明
为了更清楚地说明本发明的实施方式或现有技术中的技术方案,下面将对实施方式或现有技术描述中所需要使用的附图作简单地介绍。显而易见地,下面描述中的附图仅仅是示例性的,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图引伸获得其它的实施附图。
图1为本发明实施例提供的基于前序优先匹配规则多层级***配置服务设计方法流程图。
图2为本发明实施例提供的多层级***配置服务针对的各种场景下的配置示意图。
具体实施方式
以下由特定的具体实施例说明本发明的实施方式,熟悉此技术的人士可由本说明书所揭露的内容轻易地了解本发明的其他优点及功效,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
现有中的配置管理,每一个配置项需要维护一个固定的Key值,随着业务复杂度增长,配置项越来越多,配置项的管理越来越繁杂,甚至需要专门的记录去维护相关的Key。
而且不能使用匹配通用配置的方式来灵活的支持不同场景的统一的配置,以及不同场景下存在个性化的不同配置的需求。
对此,如图1所示,本发明提供了一种基于前序优先匹配规则多层级***配置服务设计方法,针对多层级配置的存储方法、配置匹配算法和服务接口设计,包括如下步骤:
根据配置项的业务层级,将每一层级作为一个配置单元,层级的名称即是配置单元的名称,层级的值即为所述配置单元的配置项的值;
通过多项所述配置单元的名称组成的配置路径的Hash值来作为所述配置项的Key值来存储;
采用统一的基于Http协议的Restful风格的服务接口来获取与应用场景最大匹配度的配置,既支持一个配置适配多场景,也支持多场景多个配置的情况。
基于前序优先匹配规则的多层级***配置,对于用户开发的一个业务***、模块甚至业务组件,在不修改代码,不重新构建、部署的情况下,通过个性化***统一配置进行个性化定制,包括修改租户、应用***、模块、业务组件、用户多层次的配置参数,来满足多租户对业务***的数据、业务功能、呈现样式等多方面的个性化需求。
用户可以根据业务需求,自定义业务规则,存储相关业务配置,但可以很方便快速匹配的最佳配置。通过统一配置进行个性化定制,提高业务***开发的灵活性,最大程度的解决多租户对业务***多方面的个性化需求,从而极大地提高业务应用***的开发效率,缩短开发周期,节约开发成本。
在本实施例中,多层级配置针对一个配置项由多个配置层级对应的一组配置单元组成的配置路径进行配置,配置项的值为任意的Json数据。
配置单元的名称(unit)取值包括:租户(tenant)/应用***(app)/模块(app_module)/用户(user)/组件(widget),并支持自定义扩展。
配置路径(routing)由一系列有序的配置单元的名称和值构成的键-值对组成,且优先匹配前序路径项。
配置路径(routing)的各路径项可使用通配符“*”来表示匹配所有值。
多层级***配置服务采用统一的配置参数存、取接口,使用Redis数据库存储数据,并开启持久化。
多层级***配置服务基本设计目标是针对各种场景下的配置,当存在个性化配置时使用个性化配置的值,当没有个性化配置时采用通用配置的值。
例如,如图2所示,一个天气环境的组件界面颜色采用蓝色背景(如图2的background;blue),租户T1希望使用红色背景(如图2的background;red),租户T1可以配置针对T1的个性化配置,而这个配置只针对T1有效使用红色背景,其它租户不受T1租户的设置影响,租户T2没有配置个性化的参数,当T2访问***时会采用通用的配置即取蓝色背景。
在本实施例中,匹配算法的设计如下:
配置项的匹配规则采用前序优先原则下最大匹配度算法,即为优先匹配所述配置路径中靠前面的所述配置单元。
例如:组件(Widget)的各项配置单元的前后顺序依次是:tenant/app/app_module/user/widget,假设匹配条件为:t1|a1|m1|u1|w1,那么其匹配可能值的先后顺序依次为:
·t1|a1|m1|u1|w1
·t1|a1|m1|*|w1
·t1|a1|*|u1|w1
·t1|a1|*|*|w1
·t1|*|m1|u1|w1
·t1|*|m1|*|w1
·t1|*|*|u1|w1
·t1|*|*|*|w1
·*|a1|m1|u1|w1
·*|a1|m1|*|w1
·*|a1|*|u1|w1
·*|a1|*|*|w1
·*|*|m1|u1|w1
·*|*|m1|*|w1
·*|*|*|u1|w1
·*|*|*|*|w1
前序优先最长匹配递归算法的最多匹配的匹配次数为:
其中,p为最多匹配的匹配次数;
N为配置路径中配置单元的个数。
为了提高搜索性能,Key值使用所述配置路径的各项值的Hash值加上所述配置路径的各项名称构成:
Key=Hash(join(routing*key+,’|’)|unit-type)|join(routing[value],’|’)|unit-type;
形如:"95d232ac5fc495f4ced3d6df56096af4|t1|a1|m1|u1|widget"。
本实施例多层级***配置服务接口设计如下:
1、设置配置项接口:
接口定义:PUT/api/v1/profile/;
请求BODY:{type:"配置项类型",routing:[配置路径]};
返回值:{code:200,message:“success”,data:“Json格式配置值”};
设置配置时,对于通用配置项的配置单元的值使用通配符“*”来设置。
配置路径由一组Key-Value值对构成,如:{key:"tenantid",value:"租户ID"},{key:"appid",value:"应用ID"},{key:"app_module",value:"模块ID"},{key:"userid",value:"用户ID"};
2、查询最大匹配度配置项接口:
接口定义:POST/api/v1/profile/;
请求BODY:{type:"配置项类型",routing:[配置路径],data:{Json格式配置值}};
返回值:{code:200,message:“success”,data:“”}。
虽然,上文中已经用一般性说明及具体实施例对本发明作了详尽的描述,但在本发明基础上,可以对之作一些修改或改进,这对本领域技术人员而言是显而易见的。因此,在不偏离本发明精神的基础上所做的这些修改或改进,均属于本发明要求保护的范围。
Claims (6)
1.一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,包括如下步骤:
根据配置项的业务层级,将每一层级作为一个配置单元,层级的名称即是配置单元的名称,层级的值即为所述配置单元的配置项的值;
通过多项所述配置单元的名称组成的配置路径的Hash值来作为所述配置项的Key值来存储;
采用统一的基于Http协议的Restful风格的服务接口来获取与应用场景最大匹配度的配置;
其中,所述配置路径由一系列有序的配置单元的名称和值构成的键-值对组成,且优先匹配前序路径项,所述配置路径的各路径项使用通配符来表示匹配所有值,所述配置项的匹配规则采用前序优先原则下最大匹配度算法,即为优先匹配所述配置路径中靠前面的所述配置单元,所述前序优先原则下最大匹配度算法的最多匹配的匹配次数为:
其中,p为最多匹配的匹配次数,n为配置路径中配置单元的个数。
2.根据权利要求1所述的一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,一个配置项由多个配置层级对应的一组配置单元组成的配置路径进行配置。
3.根据权利要求2所述的一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,所述配置项的值为任意的Json数据。
4.根据权利要求1所述的一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,所述配置单元的名称取值包括:租户、应用***、模块、用户和组件,并支持自定义扩展。
5.根据权利要求1所述的一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,所述多层级***配置服务采用统一的配置参数存、取接口,使用Redis数据库存储数据,并开启持久化。
6.根据权利要求1所述的一种基于前序优先匹配规则多层级***配置服务设计方法,其特征在于,所述Key值使用所述配置路径的各项值的Hash值加上所述配置路径的各项名称构成。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156528.7A CN110825358B (zh) | 2019-11-22 | 2019-11-22 | 一种基于前序优先匹配规则多层级***配置服务设计方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911156528.7A CN110825358B (zh) | 2019-11-22 | 2019-11-22 | 一种基于前序优先匹配规则多层级***配置服务设计方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825358A CN110825358A (zh) | 2020-02-21 |
CN110825358B true CN110825358B (zh) | 2023-07-21 |
Family
ID=69558253
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911156528.7A Active CN110825358B (zh) | 2019-11-22 | 2019-11-22 | 一种基于前序优先匹配规则多层级***配置服务设计方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825358B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN113326264A (zh) * | 2021-06-11 | 2021-08-31 | 深圳前海微众银行股份有限公司 | 数据处理方法、服务器及存储介质 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955384A (zh) * | 2014-04-15 | 2014-07-30 | 南威软件股份有限公司 | 一种基于多租户模式的支持个性化定制的方法 |
CN105631019A (zh) * | 2015-12-29 | 2016-06-01 | 畅捷通信息技术股份有限公司 | 元数据扩展方法和元数据扩展装置 |
CN106371832A (zh) * | 2016-08-29 | 2017-02-01 | 石化盈科信息技术有限责任公司 | 基于元数据驱动的SaaS功能定制***及定制方法 |
CN108696372A (zh) * | 2017-04-06 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 一种保持***配置一致性的方法和*** |
CN108932121A (zh) * | 2018-05-22 | 2018-12-04 | 哈尔滨工业大学(威海) | 一种面向多租户分布式服务组件研发的模块及方法 |
CN109901817A (zh) * | 2017-12-11 | 2019-06-18 | 镇江共远软件开发有限公司 | 一种软件架构*** |
CN109951530A (zh) * | 2019-02-27 | 2019-06-28 | 上海浪潮云计算服务有限公司 | 一种多租户模式的技术实现方法 |
CN110321183A (zh) * | 2018-03-29 | 2019-10-11 | 优酷网络技术(北京)有限公司 | 一种公共组件ui界面的配置***及方法 |
Family Cites Families (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8869099B2 (en) * | 2008-07-28 | 2014-10-21 | Infosys Limited | System and method of enabling multi-tenancy for software as a service application |
US10476760B2 (en) * | 2013-10-30 | 2019-11-12 | Oracle International Corporation | System and method for placement logic in a cloud platform environment |
-
2019
- 2019-11-22 CN CN201911156528.7A patent/CN110825358B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN103955384A (zh) * | 2014-04-15 | 2014-07-30 | 南威软件股份有限公司 | 一种基于多租户模式的支持个性化定制的方法 |
CN105631019A (zh) * | 2015-12-29 | 2016-06-01 | 畅捷通信息技术股份有限公司 | 元数据扩展方法和元数据扩展装置 |
CN106371832A (zh) * | 2016-08-29 | 2017-02-01 | 石化盈科信息技术有限责任公司 | 基于元数据驱动的SaaS功能定制***及定制方法 |
CN108696372A (zh) * | 2017-04-06 | 2018-10-23 | 阿里巴巴集团控股有限公司 | 一种保持***配置一致性的方法和*** |
CN109901817A (zh) * | 2017-12-11 | 2019-06-18 | 镇江共远软件开发有限公司 | 一种软件架构*** |
CN110321183A (zh) * | 2018-03-29 | 2019-10-11 | 优酷网络技术(北京)有限公司 | 一种公共组件ui界面的配置***及方法 |
CN108932121A (zh) * | 2018-05-22 | 2018-12-04 | 哈尔滨工业大学(威海) | 一种面向多租户分布式服务组件研发的模块及方法 |
CN109951530A (zh) * | 2019-02-27 | 2019-06-28 | 上海浪潮云计算服务有限公司 | 一种多租户模式的技术实现方法 |
Non-Patent Citations (1)
Title |
---|
张一川.基于交互的多租约SaaS中个性化租约定制关键技术研究.《中国博士学位论文电子期刊》.2015,(第undefined期),全文. * |
Also Published As
Publication number | Publication date |
---|---|
CN110825358A (zh) | 2020-02-21 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110321344B (zh) | 关联数据的信息查询方法、装置、计算机设备及存储介质 | |
US8700560B2 (en) | Populating a multi-relational enterprise social network with disparate source data | |
US10042875B2 (en) | Bloom filter index for device discovery | |
US9317518B2 (en) | Data synchronization | |
WO2022257390A1 (zh) | 数据处理方法、服务器及存储介质 | |
CN107807932B (zh) | 一种基于路径枚举的层级数据管理方法和*** | |
CN110275861A (zh) | 数据存储方法及装置、存储介质、电子装置 | |
CN111241177B (zh) | 数据采集方法、***及网络设备 | |
CN106649602B (zh) | 业务对象数据处理方法、装置和服务器 | |
CN110716965B (zh) | 一种块链式账本中的查询方法、装置及设备 | |
CN107391506A (zh) | 用于查询数据的方法和装置 | |
CN110598107A (zh) | 查询***的管理方法和计算机存储介质 | |
CN110825358B (zh) | 一种基于前序优先匹配规则多层级***配置服务设计方法 | |
CN116521956A (zh) | 一种图数据库查询方法、装置、电子设备及存储介质 | |
CN105677916A (zh) | 一种关于Redis使用的方法 | |
CN113590144A (zh) | 一种依赖处理方法及装置 | |
CN111124883B (zh) | 一种基于树形表格的测试用例库引入方法、***及设备 | |
CN112835638A (zh) | 一种基于嵌入式应用程序的配置信息管理方法及装置 | |
US11531706B2 (en) | Graph search using index vertices | |
CN111814020A (zh) | 一种数据的获取方法和装置 | |
US8005844B2 (en) | On-line organization of data sets | |
CN113779068A (zh) | 数据查询方法、装置、设备及存储介质 | |
US10402391B2 (en) | Processing method, device and system for data of distributed storage system | |
CN113760907A (zh) | 一种数据库中数据唯一性标识方法 | |
CN111858609A (zh) | 区块链模糊查询方法及装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |