一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

一种全局配置方法和系统与流程

2022-11-19 12:39:59 来源:中国专利 TAG:


1.本发明属于通用化配置技术领域,尤其涉及一种全局配置方法和系统。


背景技术:

2.随着微服务的不断扩大,订单系统、商品系统、用户系统、物流系统、任务系统、告警系统等系统级别的拆分不断增多,每个系统的服务也在不断增加。为了满足高可用的需求,每个子服务需要实现高可用部署,随着不断的裂变,每个系统维护一套配置,给持续集成、服务变更、滚动升级迭代都造成很大的困扰;同时因为配置修改不及时以及兼容性问题,造成业务损失等问题层出不穷,并且不同的系统配置让维护变更费时费力。
3.现存业务会在每个系统中配置单独的配置中心以及告警中心维护自己的配置关系。当前的模式在发生配置标准化升级时,会经常造成信息或者配置遗漏,或者造成业务流量损失;并且在人员信息变更情况下,更改起来过于复杂,各系统因为语言等原因会有不同的配置更改方式,维护起来十分麻烦。


技术实现要素:

4.为解决上述技术问题,本技术提出一种全局配置方案。
5.本发明第一方面公开了一种全局配置方法。所述方法包括:步骤s1、配置前端接收来自配置方的配置数据,并将所述配置数据发送至配置后端;步骤s2、所述配置后端基于所述配置数据更新各个配置项的配置参数;步骤s3、在所述配置后端已完成注册的各个微服务单元经由所述配置后端的接口获取经更新的配置参数。
6.其中,在所述步骤s3中,获取所述经更新的配置参数的方式为:所述各个微服务单元根据配置需求从所述配置后端读取所述经更新的配置参数;或者所述配置后端在完成实时更新所述配置参数后,向所述各个微服务单元中请求过所述经更新的配置参数的微服务单元推送所述经更新的配置参数。
7.根据本发明第一方面的方法,所述配置前端为浏览器或者应用的配置中心界面,所述配置后端为配置中心服务端,所述各个微服务单元为各个微服务提供方的配置中心客户端;所述配置前端与所述配置后端以代码化分离的方式实现配置界面化,所述配置前端基于vue框架实现配置界面的展示,所述配置后端通过go语言实现各类功能。
8.根据本发明第一方面的方法,所述配置方为配置中台,所述配置中台注册有若干用户,所述若干用户通过所述配置中台进行单点登录,登录后经由展示的所述配置界面输入所述配置数据,所述配置数据以键值对的形式进行定义;所述配置前端缓存所述配置方的第一session信息,所述第一session信息为所述配置前端和所述配置方之间的第一会话控制信息,包含第一会话属性和第一会话配置信息,用于在第一会话界面多次跳转的情况下保留所述配置方的登录信息和登录状态。
9.根据本发明第一方面的方法,所述配置后端包括路由中心、写系统、读系统、任务系统、mysql数据库、redis缓存数据库、elasticsearch数据库以及rabbitmq消息队列;其
中,所述路由中心在接收到来自所述数据前端或者来自任一微服务单元的数据包后,对所述数据包进行基于哈希的签名校验,所述签名校验通过后,所述路由中心根据所述数据包的直接请求方式将所述数据包发送至所述对应的执行系统,所述执行系统为写系统或者读系统;其中,来自所述数据前端的数据包的直接请求方式为写入请求,其包含所述配置数据,来自所述任一微服务单元的数据包的直接请求方式为读取请求,其包含要读取的配置数据的查询关键词。
10.根据本发明第一方面的方法,当所述路由中心接收到来自所述数据前端的数据包时,将其包含的所述配置数据发送至所述写系统,所述写系统将所述配置数据存入所述mysql数据库,所述mysql数据库用于实现所述配置数据的持久化,使得在所述配置后端发生崩溃时所述配置数据不会丢失,利用所述mysql数据库的行锁在所述mysql数据库中唯一地存储所述配置数据,使得所述mysql数据库中没有重复数据;所述写系统将所述配置数据作为热数据缓存至所述redis缓存数据库,同时将所述配置数据发送至所述消息队列,使得所述任务系统每个固定时间间隔从所述消息队列中读取所述配置数据,并将所述配置数据同步至所述elasticsearch数据库。
11.根据本发明第一方面的方法,当所述路由中心接收到来自所述任一微服务单元的数据包时,将其包含的所述查询关键词发送至所述读系统,所述读系统基于所述查询关键词确定查询匹配类型:当所述查询匹配类型为精准匹配时,直接从所述redis缓存数据库存储的所述热数据中查找与所述查询关键词对应的配置数据,若所述热数据中不存在与所述查询关键词匹配的配置数据,则从所述mysql数据库存储的全备份数据中心中进行查找;当所述查询匹配类型为模糊匹配时,从所述elasticsearch数据库存储的同步数据中查找与所述查询关键词匹配的配置数据。
12.根据本发明第一方面的方法,利用restful定义所述配置后端的接口,使得所述配置后端能够支持使用不同语言定义的所述各个微服务单元;所述配置后端缓存所述已完成注册的各个微服务单元的第二session信息,所述第二session信息为所述配置后端和所述已完成注册的各个微服务单元之间的第二会话控制信息,包含第二会话属性和第二会话配置信息,用于在第二会话界面多次跳转的情况下保留所述已完成注册的各个微服务单元的登录信息和登录状态;所述配置后端在与所述已完成注册的各个微服务单元建立建立第二会话时,仅支持基于https的第二会话请求,且所述配置后端的接口对所述第二会话请求进行数字签名验证,所述数字签名验证通过后方可建立所述第二会话。
13.根据本发明第一方面的方法,所述任务系统通过任务的方式定期从所述配置方处读取已注册用户清单,以自动维持所述若干用户的配置入口。
14.本发明第二方面公开了一种全局配置系统。所述系统至少包括配置前端和配置后端;其中:所述配置前端接收来自配置方的配置数据,并将所述配置数据发送至所述配置后端;所述配置后端基于所述配置数据更新各个配置项的配置参数;在所述配置后端已完成注册的各个微服务单元经由所述配置后端的接口获取经更新的配置参数。
15.获取所述经更新的配置参数的方式为:所述各个微服务单元根据配置需求从所述配置后端读取所述经更新的配置参数;或者所述配置后端在完成实时更新所述配置参数后,向所述各个微服务单元中请求过所述经更新的配置参数的微服务单元推送所述经更新的配置参数。
16.根据本发明第二方面的系统,所述配置前端为浏览器或者应用的配置中心界面,所述配置后端为配置中心服务端,所述各个微服务单元为各个微服务提供方的配置中心客户端;所述配置前端与所述配置后端以代码化分离的方式实现配置界面化,所述配置前端基于vue框架实现配置界面的展示,所述配置后端通过go语言实现各类功能。
17.根据本发明第二方面的系统,所述配置方为配置中台,所述配置中台注册有若干用户,所述若干用户通过所述配置中台进行单点登录,登录后经由展示的所述配置界面输入所述配置数据,所述配置数据以键值对的形式进行定义;所述配置前端缓存所述配置方的第一session信息,所述第一session信息为所述配置前端和所述配置方之间的第一会话控制信息,包含第一会话属性和第一会话配置信息,用于在第一会话界面多次跳转的情况下保留所述配置方的登录信息和登录状态。
18.根据本发明第二方面的系统,所述配置后端包括路由中心、写系统、读系统、任务系统、mysql数据库、redis缓存数据库、elasticsearch数据库以及rabbitmq消息队列;其中,所述路由中心在接收到来自所述数据前端或者来自任一微服务单元的数据包后,对所述数据包进行基于哈希的签名校验,所述签名校验通过后,所述路由中心根据所述数据包的直接请求方式将所述数据包发送至所述对应的执行系统,所述执行系统为写系统或者读系统;其中,来自所述数据前端的数据包的直接请求方式为写入请求,其包含所述配置数据,来自所述任一微服务单元的数据包的直接请求方式为读取请求,其包含要读取的配置数据的查询关键词。
19.根据本发明第二方面的系统,当所述路由中心接收到来自所述数据前端的数据包时,将其包含的所述配置数据发送至所述写系统,所述写系统将所述配置数据存入所述mysql数据库,所述mysql数据库用于实现所述配置数据的持久化,使得在所述配置后端发生崩溃时所述配置数据不会丢失,利用所述mysql数据库的行锁在所述mysql数据库中唯一地存储所述配置数据,使得所述mysql数据库中没有重复数据;所述写系统将所述配置数据作为热数据缓存至所述redis缓存数据库,同时将所述配置数据发送至所述消息队列,使得所述任务系统每个固定时间间隔从所述消息队列中读取所述配置数据,并将所述配置数据同步至所述elasticsearch数据库。
20.根据本发明第二方面的系统,当所述路由中心接收到来自所述任一微服务单元的数据包时,将其包含的所述查询关键词发送至所述读系统,所述读系统基于所述查询关键词确定查询匹配类型:当所述查询匹配类型为精准匹配时,直接从所述redis缓存数据库存储的所述热数据中查找与所述查询关键词对应的配置数据,若所述热数据中不存在与所述查询关键词匹配的配置数据,则从所述mysql数据库存储的全备份数据中心中进行查找;当所述查询匹配类型为模糊匹配时,从所述elasticsearch数据库存储的同步数据中查找与所述查询关键词匹配的配置数据。
21.根据本发明第二方面的系统,利用restful定义所述配置后端的接口,使得所述配置后端能够支持使用不同语言定义的所述各个微服务单元;所述配置后端缓存所述已完成注册的各个微服务单元的第二session信息,所述第二session信息为所述配置后端和所述已完成注册的各个微服务单元之间的第二会话控制信息,包含第二会话属性和第二会话配置信息,用于在第二会话界面多次跳转的情况下保留所述已完成注册的各个微服务单元的登录信息和登录状态;所述配置后端在与所述已完成注册的各个微服务单元建立建立第二
会话时,仅支持基于https的第二会话请求,且所述配置后端的接口对所述第二会话请求进行数字签名验证,所述数字签名验证通过后方可建立所述第二会话。
22.根据本发明第二方面的系统,所述任务系统通过任务的方式定期从所述配置方处读取已注册用户清单,以自动维持所述若干用户的配置入口。
23.本发明第三方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种全局配置方法中的步骤。
24.综上,本发明提供的一种(接口级别的)全局配置方案能够实现更方便的全局配置,避免配置的散乱化,,更加中台化;作为各类服务的配置中心,本发明对全局配置提供接口级别的支持,能够提供跨系统跨语言的标准服务。
附图说明
25.为了更清楚地说明本发明具体实施方式或现有技术中的技术方案下面将对具体实施方式或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施方式,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
26.图1为根据本发明实施例的配置过程的示意图;
27.图2为根据本发明实施例的配置后端的结构图。
具体实施方式
28.为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例只是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
29.本发明第一方面公开了一种全局配置方法。
30.图1为根据本发明实施例的配置过程的示意图;如图1所示,所述方法包括:步骤s1、配置前端接收来自配置方的配置数据,并将所述配置数据发送至配置后端;步骤s2、所述配置后端基于所述配置数据更新各个配置项的配置参数;步骤s3、在所述配置后端已完成注册的各个微服务单元经由所述配置后端的接口获取经更新的配置参数。其中,在所述步骤s3中,获取所述经更新的配置参数的方式为:所述各个微服务单元根据配置需求从所述配置后端读取所述经更新的配置参数;或者所述配置后端在完成实时更新所述配置参数后,向所述各个微服务单元中请求过所述经更新的配置参数的微服务单元推送所述经更新的配置参数。
31.在一些实施例中,所述配置前端为浏览器或者应用的配置中心界面,所述配置后端为配置中心服务端,所述各个微服务单元为各个微服务提供方的配置中心客户端;所述配置前端与所述配置后端以代码化分离的方式实现配置界面化,所述配置前端基于vue框架实现配置界面的展示,所述配置后端通过go语言实现各类功能。
32.具体地,前端基于vue的方式进行当前配置展示,并且实现前后端分离的方式,实现配置界面化,并且实现基于企业微信用户的单点登录系统。后端通过go实现,接受前端系
统的增删改查,并且实现不同系统的直接请求方式。
33.在一些实施例中,所述配置方为配置中台,所述配置中台注册有若干用户,所述若干用户通过所述配置中台进行单点登录,登录后经由展示的所述配置界面输入所述配置数据,所述配置数据以键值对的形式进行定义;所述配置前端缓存所述配置方的第一session信息,所述第一session信息为所述配置前端和所述配置方之间的第一会话控制信息,包含第一会话属性和第一会话配置信息,用于在第一会话界面多次跳转的情况下保留所述配置方的登录信息和登录状态。
34.具体地,前端模块主要功能是更加优雅的方便管理人员查看并且配置需求的key/value,通过前端自己缓存session的方式,让前端避免重复登录的问题。作为和人直接交互的桥梁,前端页面主要从设计和ui上进行优化,让使用者更加方便和简单;并且前端模块也让系统维护的门槛更加低,用户只需要使用鼠标点击就可以实现key/value的修改和配置。
35.图2为根据本发明实施例的配置后端的结构图;如图2所示,在一些实施例中,所述配置后端包括路由中心、写系统、读系统、任务系统、mysql数据库、redis缓存数据库、elasticsearch数据库以及rabbitmq消息队列。
36.其中,所述路由中心在接收到来自所述数据前端或者来自任一微服务单元的数据包后,对所述数据包进行基于哈希的签名校验,所述签名校验通过后,所述路由中心根据所述数据包的直接请求方式将所述数据包发送至所述对应的执行系统,所述执行系统为写系统或者读系统;其中,来自所述数据前端的数据包的直接请求方式为写入请求,其包含所述配置数据,来自所述任一微服务单元的数据包的直接请求方式为读取请求,其包含要读取的配置数据的查询关键词。
37.具体地,路由中心主要作用是对请求进行判断和权限校验,为了保证系统的安全性,路由会对所有的请求进行基于hash的签名校验,对于符合要求的请求才会给予放行;之后对于权限通过的请求,进行更加细致的校验,判断请求的类型,然后分发给不通的系统模块,路由系统主要是第一层的流量拦截与分发。
38.在一些实施例中,当所述路由中心接收到来自所述数据前端的数据包时,将其包含的所述配置数据发送至所述写系统,所述写系统将所述配置数据存入所述mysql数据库,所述mysql数据库用于实现所述配置数据的持久化,使得在所述配置后端发生崩溃时所述配置数据不会丢失,利用所述mysql数据库的行锁在所述mysql数据库中唯一地存储所述配置数据,使得所述mysql数据库中没有重复数据;所述写系统将所述配置数据作为热数据缓存至所述redis缓存数据库,同时将所述配置数据发送至所述消息队列,使得所述任务系统每个固定时间间隔从所述消息队列中读取所述配置数据,并将所述配置数据同步至所述elasticsearch数据库。
39.具体地,对于路由中心的写入请求,路由会发送到写请求模块,模块接收到请求之后,会对数据的整体类型和结构进行判断和校验,之后用mysql作为一执行的方案,并且用mysql的行锁保证数据不会存在唯一性冲突。同时写处理模块会把消息发送到消息队列,用于其他模块的消费,mysql事物完成之后,会同步把数据更新的到redis中,因为刚写入的数据读取的可能是最大的。任务中心主要用于处理定期化任务,主要为消费队列中写请求输出的消息,把mysql的数据异步的同步到elastisearch中,实现用户近实时的搜索。
40.在一些实施例中,当所述路由中心接收到来自所述任一微服务单元的数据包时,
将其包含的所述查询关键词发送至所述读系统,所述读系统基于所述查询关键词确定查询匹配类型:当所述查询匹配类型为精准匹配时,直接从所述redis缓存数据库存储的所述热数据中查找与所述查询关键词对应的配置数据,若所述热数据中不存在与所述查询关键词匹配的配置数据,则从所述mysql数据库存储的全备份数据中心中进行查找;当所述查询匹配类型为模糊匹配时,从所述elasticsearch数据库存储的同步数据中查找与所述查询关键词匹配的配置数据。
41.具体地,对于路由中心的读处理请求,路由中心会路由到本模块进行处理,读请求会优先校验参数的类型和规范是不是符合,然后进行逻辑处理,根据请求是不是模糊匹配来进行模糊匹配,如果是模糊匹配则通过elasticsearch的分词进行算分匹配处理,并发把查询的数据缓存到redis,如果请求是精准匹配,那么直接从关系型数据库进行数据匹配,并且同步优化数据到redis。
42.在一些实施例中,利用restful定义所述配置后端的接口,使得所述配置后端能够支持使用不同语言定义的所述各个微服务单元;所述配置后端缓存所述已完成注册的各个微服务单元的第二session信息,所述第二session信息为所述配置后端和所述已完成注册的各个微服务单元之间的第二会话控制信息,包含第二会话属性和第二会话配置信息,用于在第二会话界面多次跳转的情况下保留所述已完成注册的各个微服务单元的登录信息和登录状态;所述配置后端在与所述已完成注册的各个微服务单元建立建立第二会话时,仅支持基于https的第二会话请求,且所述配置后端的接口对所述第二会话请求进行数字签名验证,所述数字签名验证通过后方可建立所述第二会话。
43.具体地,由于通过restful的方式,所以本系统支持跨语言跨网络的方式进行调用,并且为了保证可靠,系统维护自己的session信息,并且对接口层可靠的数字签名方式,系统只支持https方式的请求保证传输的安全性。
44.在一些实施例中,所述任务系统通过任务的方式定期从所述配置方处读取已注册用户清单,以自动维持所述若干用户的配置入口。
45.具体地,所述任务系统通过任务的形式定期的去企业微信检索用户与本地进行比对,实现用户的动态变更,同时任务中心对于需要主动变更的key进行会调发布操作,但用户链接的时候可以进行调用通知接口配置,这样当标记的key变更的时候,任务中心会根据会掉配置进行消息通知。通过企业微信和外部配置的方式实现用户的标准化统一,企业微信拉取用户列表的方式保证了用户入口的唯一,支持外部用户配置方式则对特殊情况加以支持。
46.各模块通过配合,不同的模块实现不同的功能,让程序可以在接受不同系统的访问,这样不需要重复操作,可以实现多系统使用一套配置,大大减少了配置的压力;统一的配置以及界面操作减少了配置的学习成本,大大的提高了效率。
47.本发明第二方面公开了一种全局配置系统。所述系统至少包括配置前端和配置后端;其中:所述配置前端接收来自配置方的配置数据,并将所述配置数据发送至所述配置后端;所述配置后端基于所述配置数据更新各个配置项的配置参数;在所述配置后端已完成注册的各个微服务单元经由所述配置后端的接口获取经更新的配置参数。
48.获取所述经更新的配置参数的方式为:所述各个微服务单元根据配置需求从所述配置后端读取所述经更新的配置参数;或者所述配置后端在完成实时更新所述配置参数
后,向所述各个微服务单元中请求过所述经更新的配置参数的微服务单元推送所述经更新的配置参数。
49.根据本发明第二方面的系统,所述配置前端为浏览器或者应用的配置中心界面,所述配置后端为配置中心服务端,所述各个微服务单元为各个微服务提供方的配置中心客户端;所述配置前端与所述配置后端以代码化分离的方式实现配置界面化,所述配置前端基于vue框架实现配置界面的展示,所述配置后端通过go语言实现各类功能。
50.根据本发明第二方面的系统,所述配置方为配置中台,所述配置中台注册有若干用户,所述若干用户通过所述配置中台进行单点登录,登录后经由展示的所述配置界面输入所述配置数据,所述配置数据以键值对的形式进行定义;所述配置前端缓存所述配置方的第一session信息,所述第一session信息为所述配置前端和所述配置方之间的第一会话控制信息,包含第一会话属性和第一会话配置信息,用于在第一会话界面多次跳转的情况下保留所述配置方的登录信息和登录状态。
51.根据本发明第二方面的系统,所述配置后端包括路由中心、写系统、读系统、任务系统、mysql数据库、redis缓存数据库、elasticsearch数据库以及rabbitmq消息队列;其中,所述路由中心在接收到来自所述数据前端或者来自任一微服务单元的数据包后,对所述数据包进行基于哈希的签名校验,所述签名校验通过后,所述路由中心根据所述数据包的直接请求方式将所述数据包发送至所述对应的执行系统,所述执行系统为写系统或者读系统;其中,来自所述数据前端的数据包的直接请求方式为写入请求,其包含所述配置数据,来自所述任一微服务单元的数据包的直接请求方式为读取请求,其包含要读取的配置数据的查询关键词。
52.根据本发明第二方面的系统,当所述路由中心接收到来自所述数据前端的数据包时,将其包含的所述配置数据发送至所述写系统,所述写系统将所述配置数据存入所述mysql数据库,所述mysql数据库用于实现所述配置数据的持久化,使得在所述配置后端发生崩溃时所述配置数据不会丢失,利用所述mysql数据库的行锁在所述mysql数据库中唯一地存储所述配置数据,使得所述mysql数据库中没有重复数据;所述写系统将所述配置数据作为热数据缓存至所述redis缓存数据库,同时将所述配置数据发送至所述消息队列,使得所述任务系统每个固定时间间隔从所述消息队列中读取所述配置数据,并将所述配置数据同步至所述elasticsearch数据库。
53.根据本发明第二方面的系统,当所述路由中心接收到来自所述任一微服务单元的数据包时,将其包含的所述查询关键词发送至所述读系统,所述读系统基于所述查询关键词确定查询匹配类型:当所述查询匹配类型为精准匹配时,直接从所述redis缓存数据库存储的所述热数据中查找与所述查询关键词对应的配置数据,若所述热数据中不存在与所述查询关键词匹配的配置数据,则从所述mysql数据库存储的全备份数据中心中进行查找;当所述查询匹配类型为模糊匹配时,从所述elasticsearch数据库存储的同步数据中查找与所述查询关键词匹配的配置数据。
54.根据本发明第二方面的系统,利用restful定义所述配置后端的接口,使得所述配置后端能够支持使用不同语言定义的所述各个微服务单元;所述配置后端缓存所述已完成注册的各个微服务单元的第二session信息,所述第二session信息为所述配置后端和所述已完成注册的各个微服务单元之间的第二会话控制信息,包含第二会话属性和第二会话配
置信息,用于在第二会话界面多次跳转的情况下保留所述已完成注册的各个微服务单元的登录信息和登录状态;所述配置后端在与所述已完成注册的各个微服务单元建立建立第二会话时,仅支持基于https的第二会话请求,且所述配置后端的接口对所述第二会话请求进行数字签名验证,所述数字签名验证通过后方可建立所述第二会话。
55.根据本发明第二方面的系统,所述任务系统通过任务的方式定期从所述配置方处读取已注册用户清单,以自动维持所述若干用户的配置入口。
56.本发明第三方面公开了一种计算机可读存储介质。所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时,实现本公开第一方面中任一项所述的一种全局配置方法中的步骤。
57.综上,本发明提供的一种(接口级别的)全局配置方案能够实现更方便的全局配置,避免配置的散乱化,,更加中台化;作为各类服务的配置中心,本发明对全局配置提供接口级别的支持,能够提供跨系统跨语言的标准服务。
58.请注意,以上实施例的各技术特征可以进行任意的组合,为使描述简洁,未对上述实施例中的各个技术特征所有可能的组合都进行描述,然而,只要这些技术特征的组合不存在矛盾,都应当认为是本说明书记载的范围。以上所述实施例仅表达了本技术的几种实施方式,其描述较为具体和详细,但并不能因此而理解为对发明专利范围的限制。应当指出的是,对于本领域的普通技术人员来说,在不脱离本技术构思的前提下,还可以做出若干变形和改进,这些都属于本技术的保护范围。因此,本技术专利的保护范围应以所附权利要求为准。
再多了解一些

本文用于创业者技术爱好者查询,仅供学习研究,如用于商业用途,请联系技术所有人。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献