一种政务云平台微服务配置方法
文献发布时间:2023-06-19 09:27:35
技术领域
本发明涉及电子政务安全监管技术领域,特别涉及一种政务云平台微服务配置方法。
背景技术
在当前众多公共业务上云的趋势下,政务云和云服务得到大力发展,随着各部门上云步骤不断加快,政务云上的云服务不断增多,其中基于新的架构技术微服务架构的服务也越来越多。
有关微服务的配置,大多数在微服务中单独写一个配置文件,例如"config.conf",然后将各类参数配置、应用配置、环境配置、安全配置、业务配置都写到这个文件里。当微服务代码逻辑中需要使用配置的时候,就从这个配置文件中读取。这种做法虽然简单,但如果参数需要修改,就非常的不灵活,甚至需要重启运行中的服务才能生效。
由于配置文件是放在服务中的,但是由于服务可能会有多个环境,例如:测试环境、预发布环境、生产环境。每一个环境所使用的配置参数理论上都是不同的,所以需要在配置文件中根据不同环境配置不同的参数。而且目前这些配置都是手动维护,因而在服务发布的时候,极其容易因开发人员的失误导致出错。
当一个微服务中存在多个逻辑模块独立部署,每个模块所使用的配置内容又不相同时,传统的做法是在每一个模块中都放一个配置文件,甚至不同模块的配置文件格式也不一样。长期采用这种方法会不可避免的导致配置文件过于分散混乱,难以管理。
此外,因为采用的静态配置文件方式,所以当配置进行修改之后,不容易形成记录,更无法追溯修改人、修改时间以及修改前的内容。无法追溯修改前的内容,当配置出错时,服务就无法回滚配置。
针对上述问题,本发明提出了一种政务云平台微服务配置方法。
发明内容
本发明为了弥补现有技术的缺陷,提供了一种简单高效的政务云平台微服务配置方法。
本发明是通过如下技术方案实现的:
一种政务云平台微服务配置方法,其特征在于:将服务中所有配置、参数和开关集中进行统一管理,并提供集中化的外部配置支持,分为客户端和服务端两部分;
所述服务端即为微服务配置中心,是一个独立的微服务应用,用于管理配置并为客户端提供获取配置的接口;
所述客户端即为各微服务应用,通过指定配置中心地址从远端获取配置内容,启动时加载配置信息到应用上下文中。
所述服务端作为微服务配置中心,其配置管理过程包括以下步骤:
第一步,管理员通过管理平台对用户进行管理,根据已经用户属性信息创建用户,更新用户,删除用户,给用户分配服务权限,以及修改用户密码;
第二步,普通用户通过管理平台的环境管理自定义和管理环境信息,通过菜单切换不同配置中心环境;
第三步,普通用户通过管理平台的服务管理操作和维护服务,以“服务”为维度进行权限控制以及配置隔离;
第四步,普通用户通过管理平台的配置管理查看和操作该服务下的配置数据,并向客户端推送该配置数据;
当配置存在历史变更操作时,查看该配置的历史变更记录,重新编辑配置并回滚到历史版本。
所述第一步中,通过管理平台查看和管理微服务配置中心的所有用户信息,具体包括以下步骤:
(1)准备用户属性信息,包括权限,用户名,密码;
管理员拥有配置中心所有权限,包括用户管理、环境管理、项目管理和配置管理;普通用户则仅允许操作自己拥有权限的项目下的配置;
(2)根据已经准备好的用户属性信息创建用户,支持更新和删除用户;
(3)为普通分配服务项目权限,权限细粒度到“环境+服务”,拥有环境和服务权限后,该用户可以查看和操作该环境服务下全部配置数据;
(4)修改用户密码,管理员用户还可以通过编辑用户信息功能来修改其他用户的登录密码。
所述第二步中,通过管理平台的环境管理自定义和管理环境信息,具体包括以下步骤:
(1)准备环境信息:每个环境拥有一个维护的环境变量(Env),作为环境标志;
(2)根据已准备好的环境信息创建环境,支持更新和删除环境;
(3)配置中心顶部菜单展示当前操作的配置中心环境,通过菜单切换不同配置中心环境,从而管理不同环境中的配置数据。
所述第三步中,服务属性说明包括AppName(每个服务拥有唯一的AppName,作为服务标识,同时作为该服务下配置的统一前缀)和项目名称。
所述第四步中,通过管理平台的配置管理可查看和操作该服务下的配置数据,具体包括以下步骤:
(1)准备配置属性信息,包括Key(配置的KEY,创建时将会自动添加所属服务的AppName前缀,生成最终的Key。可通过客户端使用最终的Key获取配置)、描述(该配置的描述信息)和Value(配置的值);
(2)根据准备好的配置信息为选中服务创建配置,并支持更新和删除配置;
(3)通过客户端获取该配置,并支持动态推送更新;
(4)当配置存在历史变更操作时,支持查看该配置的历史变更记录,包括操作时间、操作人和设置的配置值,根据历史数据重新编辑配置并回滚到历史版本。
为了提高容灾性,所述微服务配置中心将配置数据进行多级存储时,分为以下五层:
(1)数据库(Data Base,DB):完整的配置数据存储在数据库中,极大的方便配置数据的备份与迁移;
(2)配置中心磁盘:配置中心在每个配置中心集群节点磁盘中维护一份镜像数据,并实时同步更新;
(3)Client-镜像文件:接入配置中心的客户端应用自动对使用的配置生成镜像文件,远程配置中心故障时降级实用镜像文件;
(4)客户端本地缓存(Client-LocalCache):接入配置中心的客户端服务,优先使用LocalCache内存中的配置数据,提高性能的同时,降低对底层配置服务的压力;
(5)客户端接口(Client-Api):最后暴露给业务的API(Application ProgramInterface,应用程序接口),用户具体加载配置数据即可完成业务。
所述微服务配置中心能够在配置服务故障时快速进行配置服务降级与恢复,分为以下三种情况:
(1)当配置中心宕机或数据库宕机时,对业务系统无影响,业务系统从配置中心磁盘与客户端镜像文件中获取配置数据;
(2)当配置中心与数据库同时宕机,且客户端镜像文件被删除时,手动创建一份配置镜像文件,上传到客户端应用指定位置即可。
所述客户端作为配置的使用方,其加载配置信息过程包括以下步骤:
(1)客户端通过微服务配置中心提供的客户端SDK(Software Development Kit,软件开发工具包),一行代码获取配置信息,保证配置的实时性和高性能;
(2)客户端通过本地缓存(LocalCache)降低对配置中心集群的依赖,首次加载配置时,监听配置变更,当底层异步周期性同步配置时写入或更新缓存;
(3)客户端通过镜像文件(Mirror-File)层配置数据的本地快照文件,周期性同步本地缓存(LocalCache)中的配置数据并写入到镜像文件(Mirror-File)中;当无法从配置中心获取时,如配置中心宕机时,使用镜像文件(Mirror-File)中的配置数据;
(4)客户端通过远程控制(Remote)对配置中心远程客户端进行封装,用于加载远程配置、实时监听配置变更;
(5)客户端通过配置快照功能从配置中心获取到配置数据后,周期性缓存到本地快照文件中,如果从配置中心获取配置失败,则使用本地快照文件中的配置数据。
本发明的有益效果是:该政务云平台微服务配置方法,支持集中化的外部配置,使各服务能够实时同步最新的配置信息,同时对配置数据进行多级存储,容灾性高,保证了多环境下配置的实时性和高性能,在配置服务故障时,能够快速进行配置服务降级与恢复。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
附图1为本发明政务云平台微服务配置方法示意图。
附图2为本发明政务云平台微服务配置中心架构示意图。
附图3为本发明政务云平台客户端架构示意图。
具体实施方式
为了使本技术领域的人员更好的理解本发明中的技术方案,下面将结合本发明实施例,对本发明实施例中的技术方案进行清楚,完整的描述。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都应当属于本发明保护的范围。
该政务云平台微服务配置方法,将服务中所有配置、参数和开关集中进行统一管理,并提供集中化的外部配置支持,分为客户端和服务端两部分;
所述服务端即为微服务配置中心,是一个独立的微服务应用,用于管理配置并为客户端提供获取配置的接口;
所述客户端即为各微服务应用,通过指定配置中心地址从远端获取配置内容,启动时加载配置信息到应用上下文中。
当各个服务需要获取配置时,从微服务配置中心的接口拉取即可;当微服务配置中心中的各种参数有更新时,通知到各个服务实时同步最新的信息,使之动态更新。
所述服务端作为微服务配置中心,其配置管理过程包括以下步骤:
第一步,管理员通过管理平台对用户进行管理,根据已经用户属性信息创建用户,更新用户,删除用户,给用户分配服务权限,以及修改用户密码;
第二步,普通用户通过管理平台的环境管理自定义和管理环境信息,通过菜单切换不同配置中心环境;
第三步,普通用户通过管理平台的服务管理操作和维护服务,以“服务”为维度进行权限控制以及配置隔离;
第四步,普通用户通过管理平台的配置管理查看和操作该服务下的配置数据,并向客户端推送该配置数据;
当配置存在历史变更操作时,查看该配置的历史变更记录,重新编辑配置并回滚到历史版本。
所述第一步中,通过管理平台查看和管理微服务配置中心的所有用户信息,具体包括以下步骤:
(1)准备用户属性信息,包括权限,用户名,密码;
管理员拥有配置中心所有权限,包括用户管理、环境管理、项目管理和配置管理;普通用户则仅允许操作自己拥有权限的项目下的配置;
(2)根据已经准备好的用户属性信息创建用户,支持更新和删除用户;
(3)为普通分配服务项目权限,权限细粒度到“环境+服务”,拥有环境和服务权限后,该用户可以查看和操作该环境服务下全部配置数据;
(4)修改用户密码,管理员用户还可以通过编辑用户信息功能来修改其他用户的登录密码。
所述第二步中,通过管理平台的环境管理自定义和管理环境信息,具体包括以下步骤:
(1)准备环境信息:每个环境拥有一个维护的环境变量(Env),作为环境标志;
(2)根据已准备好的环境信息创建环境,支持更新和删除环境;
(3)配置中心顶部菜单展示当前操作的配置中心环境,通过菜单切换不同配置中心环境,从而管理不同环境中的配置数据。
所述第三步中,服务属性说明包括AppName(每个服务拥有唯一的AppName,作为服务标识,同时作为该服务下配置的统一前缀)和项目名称。
所述第四步中,通过管理平台的配置管理可查看和操作该服务下的配置数据,具体包括以下步骤:
(1)准备配置属性信息,包括Key(配置的KEY,创建时将会自动添加所属服务的AppName前缀,生成最终的Key。可通过客户端使用最终的Key获取配置)、描述(该配置的描述信息)和Value(配置的值);
(2)根据准备好的配置信息为选中服务创建配置,并支持更新和删除配置;
(3)通过客户端获取该配置,并支持动态推送更新;
(4)当配置存在历史变更操作时,支持查看该配置的历史变更记录,包括操作时间、操作人和设置的配置值,根据历史数据重新编辑配置并回滚到历史版本。
所述的微服务配置中心提供Http Restful服务和多语言支持。
Restful是一种网络应用程序的设计风格和开发方式,基于Http,可以使用Xml格式定义或Json格式定义。Restful适用于移动互联网厂商作为业务使能接口的场景,实现第三方OTT调用移动网络资源的功能,动作类型为新增、变更、删除所调用资源。
进一步的,如果是Java语言应用,可以直接通过依赖提供的Client包的方式,方便快速的接入和使用配置中心;非JAVA语言,可以借助HC-CONF提供的“微服务配置中心Http服务”,获取配置,实时感知配置更新,从而实现多语言支持。微服务配置中心提供的“微服务配置中心Http服务”只会读取磁盘配置数据,因而性能极高,而且配置中心支持通过集群无限横向扩展。
所述的微服务配置中心提供多环境支持。
单个配置中心集群,支持自定义多套环境,管理多个环境的配置数据,环境之间相互隔离。
当虚机资源紧缺,系统规模较小时,建议部署单个配置中心集群,比如部署“微服务配置中心集群”,通过定义多套环境,如“dev、test、ppe、product”,隔离不同环境配置数据,优点是,可以同享配置中心资源。
当虚机资源充足,系统规模较大时,建议部署多个微服务配置中心集群,比如部署“微服务配置中心集群A”,定义环境“ppe、product”;部署“微服务配置中心集群B”,定义环境“dev、test”等,优点是,可以避免多个集群相互影响。
为了提高容灾性,所述微服务配置中心将配置数据进行多级存储时,分为以下五层:
(1)数据库(Data Base,DB):完整的配置数据存储在数据库中,极大的方便配置数据的备份与迁移;
(2)配置中心磁盘:配置中心在每个配置中心集群节点磁盘中维护一份镜像数据,并实时同步更新;
(3)Client-镜像文件:接入配置中心的客户端应用自动对使用的配置生成镜像文件,远程配置中心故障时降级实用镜像文件;
(4)客户端本地缓存(Client-LocalCache):接入配置中心的客户端服务,优先使用LocalCache内存中的配置数据,提高性能的同时,降低对底层配置服务的压力;
(5)客户端接口(Client-Api):最后暴露给业务的API(Application ProgramInterface,应用程序接口),用户具体加载配置数据即可完成业务。
所述微服务配置中心能够在配置服务故障时快速进行配置服务降级与恢复,分为以下三种情况:
(1)当配置中心宕机或数据库宕机时,对业务系统无影响,业务系统从配置中心磁盘与客户端镜像文件中获取配置数据;
(2)当配置中心与数据库同时宕机,且客户端镜像文件被删除时,手动创建一份配置镜像文件,上传到客户端应用指定位置即可。
得益于配置中心集群关系对等特性,集群各节点提供幂等的配置服务,因此,异地跨机房部署时,只需要请求本机房配置中心即可,实现异地多活。
比如云中心A、B内分别部署微服务配置中心集群节点。即云中心A部署a1、a2两个微服务配置中心服务节点,云中心B部署b1、b2两个微服务配置中心服务节点,那么各云中心内应用只需要请求本云中心内部署的微服务配置中心节点即可,不需要跨云中心调用。即云中心A内微服务应用请求a1、a2获取配置、云中心B内微服务应用请求b1、b2获取配置。
这种跨机房部署方式实现了配置服务的“异地多活”,拥有以下三种优势:
(1)配置服务加载更快:配置请求本云中心内搞定;
(2)配置服务更稳定:配置请求不需要跨云中心,不需要考虑复杂的网络情况,更加稳定;
(3)容灾性:即使一个云中心内微服务配置中心全部宕机,仅会影响到本云中心内应用加载服务,其他云中心不会受到影响。
所述客户端作为配置的使用方,其加载配置信息过程包括以下步骤:
(1)客户端通过微服务配置中心提供的客户端SDK(Software Development Kit,软件开发工具包),一行代码获取配置信息,保证配置的实时性和高性能;
(2)客户端通过本地缓存(LocalCache)降低对配置中心集群的依赖,首次加载配置时,监听配置变更,当底层异步周期性同步配置时写入或更新缓存;
(3)客户端通过镜像文件(Mirror-File)层配置数据的本地快照文件,周期性同步本地缓存(LocalCache)中的配置数据并写入到镜像文件(Mirror-File)中;当无法从配置中心获取时,如配置中心宕机时,使用镜像文件(Mirror-File)中的配置数据;
(4)客户端通过远程控制(Remote)对配置中心远程客户端进行封装,用于加载远程配置、实时监听配置变更;
(5)客户端通过配置快照功能从配置中心获取到配置数据后,周期性缓存到本地快照文件中,如果从配置中心获取配置失败,则使用本地快照文件中的配置数据。
以上所述的实施例,只是本发明具体实施方式的一种,本领域的技术人员在本发明技术方案范围内进行的通常变化和替换都应包含在本发明的保护范围内。
- 一种政务云平台微服务配置方法
- 一种应用于政务云平台构建微服务MQ的方法