CN112363775A - 动态修改微服务配置信息的方法及系统、存储介质 - Google Patents

动态修改微服务配置信息的方法及系统、存储介质 Download PDF

Info

Publication number
CN112363775A
CN112363775A CN202011259655.2A CN202011259655A CN112363775A CN 112363775 A CN112363775 A CN 112363775A CN 202011259655 A CN202011259655 A CN 202011259655A CN 112363775 A CN112363775 A CN 112363775A
Authority
CN
China
Prior art keywords
service
server
configuration
nacos
springboot
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.)
Granted
Application number
CN202011259655.2A
Other languages
English (en)
Other versions
CN112363775B (zh
Inventor
刘奇
徐高峰
曹军伟
朱小非
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Shenzhen ZNV Technology Co Ltd
Nanjing ZNV Software Co Ltd
Original Assignee
Shenzhen ZNV Technology Co Ltd
Nanjing ZNV Software Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Shenzhen ZNV Technology Co Ltd, Nanjing ZNV Software Co Ltd filed Critical Shenzhen ZNV Technology Co Ltd
Priority to CN202011259655.2A priority Critical patent/CN112363775B/zh
Publication of CN112363775A publication Critical patent/CN112363775A/zh
Application granted granted Critical
Publication of CN112363775B publication Critical patent/CN112363775B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/445Program loading or initiating
    • G06F9/44521Dynamic linking or loading; Link editing at or after load time, e.g. Java class loading
    • G06F9/44526Plug-ins; Add-ons
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues

Abstract

本发明公开了一种动态修改微服务配置信息的方法,该方法包括以下步骤:建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令。本发明解决了配置文件修改遗漏的问题,实现了动态修改微服务配置信息,降低配置文件修改遗漏风险及重复工作。

Description

动态修改微服务配置信息的方法及系统、存储介质
技术领域
本发明涉及基于Java的微服务技术领域,特别是涉及一种动态修改微服务配置信息的方法。
背景技术
在基于Java的springboot微服务领域,一个平台或者一个系统基本都有数十个甚至更多的微服务构成,各个微服务都对第三方组件(比如Mysql,Redis,Kafka,Elasticsearch等)有或多或少的依赖,这些第三方组件的IP,端口号等关键信息都配置在微服务的配置文件中,如果其中任何一个组件IP或者端口号等关键信息发生变化,都需要运维人员或者现场工程师逐个去修改微服务的配置文件,然后进行重启,对于修改大量的微服务而言,就会存在配置文件修改遗漏的风险以及重复的工作等问题。
本申请发明人发现上述技术存在配置文件发生变化时,需要修改大量的微服务,导致配置文件修改遗漏的技术问题,因此,提供一种动态修改微服务配置信息的方法及系统是至关重要的。
发明内容
本发明的主要目的在于提供一种动态修改微服务配置信息的方法及系统、存储介质,旨在解决配置文件修改遗漏的问题。
为实现上述目的,本发明提供一种动态修改微服务配置信息的方法,所述动态修改微服务配置信息的方法包括以下步骤:
建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;
Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;
Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;
当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令。
在一实施例中,所述配置参数包括:配置项分组及配置项ID;其中,所述配置项分组包括:业务类参数组、系统类参数组及数据库类参数组中的一个或多个。
在一实施例中,所述配置管理服务器为Nacos服务器,所述将配置管理服务器与所述Springboot微服务连接,包括:
应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址;
根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系。
在一实施例中,所述Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件:
响应于登录请求启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中;
在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件。
根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点。
在一实施例中,所述根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点,包括:
在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化;
在所述bean类中扩展EnvironmentAware接口,所述接口重写SetEnvironment方法以从Nacos服务器中实时获取配置参数。
在一实施例中,所述第三方组件至少包括以下任意一种:Mysql、Redis、Kafka以及Elasticsearch。
本申请实施例还提供了一种动态修改微服务配置信息系统,所述系统包括服务端、客户端;
客户端,用于响应登录请求启动Springboot微服务,并在Nacos服务器设置配置参数;
服务端,包括Springboot微服务器与Nacos服务器;
所述Nacos服务器,用于修改Nacos.xml文件中的配置参数,根据Springboot微服务器与Nacos服务器的依赖关系将所述配置参数动态发布到Springboot微服务器节点;
所述Springboot微服务器,与所述Nacos服务器连接,用于实时获取Nacos.xml文件中的配置参数并存储于Springboot微服务器应用环境中。
在一实施例中,所述实时获取Nacos.xml文件中的配置参数,包括:
客户端和服务端保持一个长连接以实时获取配置参数;
客户端定时从Nacos服务器获取配置参数并存储于Springboot微服务器应用环境中。
本申请实施例还提供了一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的动态修改微服务配置信息程序,所述处理器执行所述动态修改微服务配置信息程序时实现如上所述的动态修改微服务配置信息方法的步骤。
本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有动态修改微服务配置信息的程序,所述动态修改微服务配置信息的程序被处理器执行时实现如上所述的动态修改微服务配置信息方法的步骤。
本申请实施例中提供的动态修改微服务配置信息的方法的技术方案,至少具有如下技术效果:
1、由于采用了建立Springboot微服务,应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址,根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系的技术手段。所以,有效解决了当配置参数发生变化需要修改多个配置文件的问题,实现了将配置管理服务器与Springboot微服务连接,动态修改配置文件的效果。
2、由于采用了响应于登录请求启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中,在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件,根据依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中的技术手段。所以,有效解决了配置参数修改遗漏或者重复性工作的问题,实现了修改配置参数并Springboot微服务节点动态向Nacos服务器获取所述修改参数的功能。
3、由于采用了Springboot微服务创建第三方组件的客户端实例,第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的配置参数与Springboot微服务连接的技术手段。所以,有效解决了对第三方组件的依赖的问题,实现了第三方组件与Springboot微服务以及Nacos服务器的连接。
4、由于采用了当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令的技术手段。所以,有效解决了每次修改配置文件参数时都需要重新启动服务器的问题,实现了在检测到参数变化时才需启动服务器,减少重复的工作。
附图说明
图1为本申请微服务配置信息系统架构的示意图;
图2为本申请计算机设备的硬件结构示意图;
图3为本申请动态修改微服务配置信息的方法第一实施例的流程示意图;
图4为本申请动态修改微服务配置信息的方法第一实施例步骤S110的一个具体流程示意图;
图5为本申请动态修改微服务配置信息的方法第一实施例步骤S120的一个具体流程示意图;
图6为本申请动态修改微服务配置信息的方法第一实施例步骤S123的一个具体流程示意图;
图7为本申请Nacos服务器监听配置信息变化处理流程图流程示意图;
图8为本申请Springboot微服务动态获取配置参数连接第三方组件流程示意图;
本发明目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。
具体实施方式
本申请为了解决配置文件修改遗漏以及重复性操作的问题,采用了建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令的技术方案,实现了动态修改微服务配置信息,降低配置文件修改遗漏风险及重复工作。
为了更好地理解上述技术方案,下面将参照附图更详细地描述本申请的示例性实施例。虽然附图中显示了本申请的示例性实施例,然而应当理解,可以以各种形式实现本申请而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地理解本申请,并且能够将本申请的范围完整的传达给本领域的技术人员。
为了更好的理解上述技术方案,下面将结合说明书附图以及具体的实施方式对上述技术方案进行详细的说明。
本申请实施例提供了一种计算机设备,如图2所示,图2为本申请计算机设备的硬件结构示意图,该计算机设备包括:通信总线50、处理器60、存储器70、用户接口80、网络接口90。
本领域技术人员可以理解,图2所示的计算机设备的硬件结构并不构成对微服务系统的限定,计算机设备可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图2对计算机设备的各个部件进行具体的介绍:
通信总线50主要实现连接微服务系统内部配置参数的处理与传输,所述通信总线50可以是ISA总线标准,也可以是EISA总线标准,可根据具体情况而定,这里不进行详细展开。所述通信总线50包含三种不同功能的总线,即数据总线、地址总线、控制总线,提供了处理器60与存储器70及其他部件的连接线,实现数据的有效传输。
处理器60是微服务系统的控制中心,所述处理器60可以是将微型计算机的主要部分集成在一个芯片上的单芯片微型计算机,例如8位单片机、16位单片机或者32位单片机等,还可以是嵌入式单片机,例如8/16/32位嵌入式单片机。所述处理器中主要包含中央处理器CPU、只读存储器ROM和随机存储器RAM等。所述处理器60的功能主要用于动态修改配置参数。
存储器70可用于存储微服务系统的动态修改微服务配置信息程序71,本申请的存储器可以是高速RAM存储器,低功耗的电可擦编程只读存储器EEPROM,也可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件或其他易失性固态存储器件;存储器可选的还可以是独立于前述处理器的存储装置存储器;所述存储器70主要包括存储程序区和存储数据区,其中,存储程序区至少存储了动态修改微服务配置信息程序71;存储数据区可以存储微服务系统的各种数据,如配置参数信息中的配置项ID、配置项分组等。
用户接口80,主要用于连接客户端,与客户端进行数据通信;网络接口80可以包括显示屏、输入单元比如键盘,还可以包括标准的有线接口、无线接口等。
网络接口90,主要用于连接服务器,与服务器进行数据通信;网络接口90可以包括标准的有线接口、无线接口;无线接口包括如WI-FI接口、蓝牙接口、LARA接口等无线通信接口等。
在本申请实施例中,处理器60可以用于调用存储在存储器70中的动态修改微服务配置信息的程序,并执行以下操作:
建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;
Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;
Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;
当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令。
在一实施例中,处理器60可以用于调用存储在存储器70中的动态修改微服务配置信息的程序,并执行以下操作:
应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址;
根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系。
在一实施例中,处理器60可以用于调用存储在存储器70中的动态修改微服务配置信息的程序,并执行以下操作:
响应于登录请求启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中;
在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件;
根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点。
在一实施例中,处理器60可以用于调用存储在存储器70中的动态修改微服务配置信息的程序,并执行以下操作:
在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化;
在所述bean类中扩展EnvironmentAware接口,所述接口重写SetEnvironment方法以从Nacos服务器中实时获取配置参数。
上述本申请实施例中的技术方案,至少具有的技术效果或优点:采用了建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令的技术方案。所以,有效解决了配置文件修改遗漏以及重复性操作的问题,实现了动态修改微服务配置信息,降低配置文件修改遗漏风险及重复工作。
如图3所示,在本申请的第一实施例中,本申请的动态修改微服务配置信息的方法具体包括以下步骤:
步骤S110,建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络。
在本实施例中,所述Springboot是一套微服务系统框架,使用Java语言进行开发,所述Springboot微服务简化了新Spring应用的初始搭建以及开发过程,使用特定的方式进行快速配置,将各种类型的项目功能封装为模块,使用时直接调用封装好的模块插件即可;所述配置管理服务器是指Nacos服务器,作为Springboot微服务的服务配置中心与服务配置中心,用于发现、配置和管理微服务,Nacos服务器提供了一组简单易用的特性集,帮助快速实现动态服务发现、服务配置、服务元数据及流量管理,使用Nacos服务器中Nacos监听程序可以实现当检测到配置参数发生变化时,才需重新启动服务器;所述第三方组件至少包括以下任意一种:Mysql、Redis、Kafka以及Elasticsearch,第三方组件可以用于重写或者扩展一些方法与属性,从而实现某些新的功能,还可以根据开发者的需要设置不同的特性,例如消息的订阅、消息的通知等。
在本实施例中,采用分布式架构建立Springboot微服务,在Springboot微服务中集成配置管理服务器,所述配置管理服务器支持三种类型的部署模型,可以包括独立模式、群集模式、多集群模式部署中的任意一种,也可根据开发需要选择不同的开发环境,使得配置管理服务器与Springboot微服务连接进行配置参数的修改与动态获取,将第三方组件与Springboot微服务连接于同一网络在环境运行中以满足更多的开发服务功能。
如图4所述,图4为本申请动态修改微服务配置信息的方法第一实施例步骤S110的一个具体流程示意图,所述将配置管理服务器与所述Springboot微服务连接,包括以下步骤:
步骤S111,应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址。
在本实施例中,所述pom.xml文件用于管理源代码、管理配置文件、建立依赖关系;所述在pom.xml文件中配置Nacos服务器地址用于启动Springboot微服务时启动Nacos服务器以在Nacos服务器上进行配置参数的设置;因此,首先需要修改pom.xml,将Springboot微服务注册到Nacos服务器的注册管理中心,以实现从Nacos服务器的注册管理中心中发现Springboot微服务或其他微服务;接着,在pom.xml文件中配置Nacos服务器地址,使Nacos服务器与所述Springboot微服务连接。
步骤S112,根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系。
在本实施例中,根据步骤S111的Nacos服务器地址,启用注解开启Springboot微服务注册发现功能,将Springboot微服务注册到Nacos服务器以建立依赖关系。
由于采用了建立Springboot微服务,应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址,根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系的技术手段。所以,有效解决了当配置参数发生变化需要修改多个配置文件的问题,实现了将配置管理服务器与Springboot微服务连接,动态修改配置文件的效果。
步骤S120,Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中。
在本实施例中,所述配置文件是指Spring Boot微服务提供的两种常用的配置文件,分别是properties文件和yml文件,他们的作用都是修改Spring Boot自动配置的默认值;所述配置参数包括配置项分组及配置项ID,其中,所述配置项分组包括业务类参数组、系统类参数组及数据库类参数组中的一个或多个。
如图5所述,图5为本申请动态修改微服务配置信息的方法第一实施例步骤S120的一个具体流程示意图,包括以下步骤:
步骤S121,响应于登录请求启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中。
在本实施例中,响应于管理员或者用户的登录请求启动Springboot微服务,登录Springboot微服务可以在Web可视化页面上进行登录,也可以在应用程序上登录,登录Springboot微服务的设备可以是智能设备,包括智能手机,智能电脑获取其他带有可视化界面的智能设备上登录。管理员或者用户启动Springboot微服务后,根据步骤S110建立的Springboot微服务与Nacos服务器的依赖关系进入Nacos服务器中。
步骤S122,在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件。
在本实施例中,启动Springboot微服务进入Nacos服务器后,可以在Nacos服务器上配置一个或者多个业务类参数组、系统类参数组及数据库类参数组中的一个分组或多个及配置项ID,其中,每个配置项对应一个配置项ID,生成Nacol.xml配置文件。
步骤S123,根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点。
在本实施例中,根据Springboot微服务与Nacos服务器的依赖关系,将步骤S122生成的Nacol.xml配置文件中的配置参数动态发布到Springboot微服务的各个节点中。
由于采用了响应于登录请求启动Springboot微服务,根据Springboot微服务与Nacos服务器的依赖关系进入Nacos服务器中,在Nacos服务器中设置配置参数以生成Nacol.xml配置文件,根据所述依赖关系,将Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点的技术手段。所以,有效解决了当配置参数发生变化需要修改多个配置文件的问题,实现了建立配置管理服务器与Springboot微服务的依赖管理,动态获取配置文件中的配置参数的效果。
如图6所示,图6为本申请动态修改微服务配置信息的方法第一实施例步骤S123的一个具体流程示意图,根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点包括以下步骤:
步骤S1231,在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化。
在本实施例中,所述bean是经历完整的spring生命周期产生的类的实例;Bean工厂后置处理器是spring一个接口;在本实施例中,在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化。
步骤S1232,在所述bean类中扩展EnvironmentAware接口,所述接口重写SetEnvironment方法以从Nacos服务器中实时获取配置参数。
在本实施例中,所述EnvironmentAware接口是Springboot微服务对外提供的一个接口,可以实现修改接口动态获取存储于Springboot微服务应用环境中信息进行处理;在本实施例中,当Nacos服务器的数据发生变化时,Nacos监听器就会定时获取到最新的数据,并将最新的配置参数保存在一个bean对象中,然后重新计算bean对象的属性值,从而触发SetEnvironment方法以从Nacos服务器中实时获取配置参数。
在本实施例中,如图8所述,图8为Springboot微服务动态获取配置参数连接第三方组件流程示意图,Springboot微服务在启动的时候,会先实例化bean工厂后置处理器,回调用户重写的setEnvironment方法,在spring调用setEnvironment时候,可以通过EnvironmentAware接口连接Nacos服务器,获取Nacos服务器中的配置参数并存储于Springboot微服务应用环境中,通过从Springboot微服务应用环境中获取配置参数以连接第三方组件。
由于采用了在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化,在所述bean类中扩展EnvironmentAware接口,所述接口重写SetEnvironment方法以从Nacos服务器中实时获取配置参数的技术手段。所以,有效解决了当配置参数发生变化需要修改多个配置文件的问题,实现了动态获取配置文件中实时获取配置参数的效果。
步骤S130,Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接。
在本实施例中,Springboot微服务客户端实例的网络地址是动态分配的,Springboot微服务运行的实例数量也是动态变化的,每个微服务可以有多个不同的实例,Springboot微服务通过创建第三方组件的客户端实例,获取存储于Springboot微服务应用环境中的配置参数,实现与Springboot微服务的连接。
步骤S140,当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令。
在本实施例中,在Nacos服务器创建了相关的配置项后,可以采用Nacos监听器进行监听配置项是否发生变化,Nacos监听器通过一个定时任务来监听配置参数变化,Nacos监听器检测到配置参数的变化采用长轮询的方式,可以通过创建一个调度任务,设置预设调度的延时时间以自动获取变化的配置参数;例如,当Nacos服务器的数据发生变化时,Nacos监听器就会定时获取到最新的数据,并将最新的配置参数保存在一个bean对象中,然后重新计算bean对象的属性值,从而触发回调函数。
在本实施例中,如图7所示,图7为Nacos服务器监听配置信息变化处理流程图,Springboot微服务启动服务后,修改Nacos服务器配置文件,Nacos监听器会回调监听器方法监听配置信息是否发生变化,当Nacos服务器检测到配置参数发生变化时,Springboot微服务会重启并重新连接第三方组件,重复步骤S120与步骤S130的操作,从而达到动态修改配置信息的效果;当检测到配置参数未发生变化时,Springboot微服务正常工作,连接第三方组件。例如:当Nacos服务器检测到配置参数发生变化时,Springboot微服务会重启,重新向所述配置管理服务器获取新的配置文件,通过解析配置文件获取新的配置参数并存储于Springboot微服务应用环境中,重新创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的最新配置参数与Springboot微服务连接,从而实现动态获取与动态修改配置文件中的配置参数的效果。
由于采用了建立Springboot微服务,应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址,根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系,启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中,在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件,根据依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中,Springboot微服务创建第三方组件的客户端实例,第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的配置参数与Springboot微服务连接,当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令,重新向所述配置管理服务器获取最新的配置文件,通过解析配置文件获取最新配置参数并存储于Springboot微服务应用环境中,重新创建第三方组件的客户端实例,第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的最新配置参数重新与Springboot微服务连接的技术手段。所以,有效解决了每次修改配置文件参数时都需要重新启动服务器的问题,实现了在检测到参数变化时才需启动服务器,减少重复的工作,动态修改配置文件的效果。
基于同一发明构思,本申请实施例还提供了一种动态修改微服务配置信息系统,如图1所示,图1为本申请动态修改微服务配置信息系统的示意图,所述系统包括服务端10与客户端40;其中,所述客户端40,用于响应登录请求启动Springboot微服务,并在Nacos服务器30设置配置参数;所述服务端10包括Springboot微服务器20与Nacos服务器30,其中,所述Nacos服务器30,用于修改Nacos.xml文件中的配置参数,根据Springboot微服务器20与Nacos服务器30的依赖关系将所述配置参数动态发布到Springboot微服务器节点;所述Springboot微服务器20,与所述Nacos服务器30连接,用于实时获取Nacos.xml文件中的配置参数并将所述配置参数存储于Springboot微服务器20应用环境中。
在本实施例中,客户端40和服务端10保持一个长连接以实时获取配置参数,客户端40定时从Nacos服务器获取配置参数并存储于Springboot微服务器应用环境中;所述获取配置参数的过程为服务发现过程,服务发现过程包括以下两种方式:服务端发现与用户端发现,这两种发现都是通过Nacos服务器提供服务配置参数的分布式管理,当Springboot微服务在启动过程时,服务端发现将Springboot微服务配置参数注册到Nacos服务器,并通过心跳维持长连接,服务端调用者通过Nacos服务器寻址,根据负载均衡算法找到Springboot微服务,当Springboot微服务下线时,Nacos服务器会发通知给客户端。
由于本申请实施例提供的动态修改微服务配置信息系统,为实施本申请实施例的方法所采用的动态修改微服务配置信息系统,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该动态修改微服务配置信息系统的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的动态修改微服务配置信息系统都属于本申请所欲保护的范围。
基于同一发明构思,本申请实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有基于视觉识别的无人机自主降落无人艇的程序,所述基于视觉识别的无人机自主降落无人艇的程序被处理器执行时实现如上述的基于视觉识别的无人机自主降落无人艇方法实施例的各个过程,且能达到相同的技术效果,为避免重复,这里不再赘述。
由于本申请实施例提供的计算机可读存储介质,为实施本申请实施例的方法所采用的计算机可读存储介质,故而基于本申请实施例所介绍的方法,本领域所属人员能够了解该计算机可读存储介质的具体结构及变形,故而在此不再赘述。凡是本申请实施例的方法所采用的计算机可读存储介质都属于本申请所欲保护的范围。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统),和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框,以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
应当注意的是,在权利要求中,不应将位于括号之间的任何参考符号构造成对权利要求的限制。单词“包含”不排除存在未列在权利要求中的部件或步骤。位于部件之前的单词“一”或“一个”不排除存在多个这样的部件。本发明可以借助于包括有若干不同部件的硬件以及借助于适当编程的计算机来实现。在列举了若干装置的单元权利要求中,这些装置中的若干个可以是通过同一个硬件项来具体体现。单词第一、第二,以及第三等的使用不表示任何顺序。可将这些单词解释为名称。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。

Claims (10)

1.一种动态修改微服务配置信息的方法,应用于Springboot微服务系统,其特征在于,所述方法包括以下步骤:
建立Springboot微服务、将配置管理服务器与所述Springboot微服务连接并将第三方组件与所述Springboot微服务连接于同一网络;
Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,通过解析配置文件获取配置参数并存储于Springboot微服务应用环境中;
Springboot微服务创建第三方组件的客户端实例,所述第三方组件的客户端实例通过获取存储于Springboot微服务应用环境中的所述配置参数与Springboot微服务连接;
当配置管理服务器检测到配置参数发生改变时,向所述Springboot微服务发出重新启动指令。
2.如权利要求1所述的动态修改微服务配置信息的方法,其特征在于,所述配置参数包括:配置项分组及配置项ID;其中,所述配置项分组包括:业务类参数组、系统类参数组及数据库类参数组中的一个或多个。
3.如权利要求1所述的动态修改微服务配置信息的方法,其特征在于,所述配置管理服务器为Nacos服务器,所述将配置管理服务器与所述Springboot微服务连接,包括:
应用pom.xml文件,在所述pom.xml文件中配置Nacos服务器地址;
根据所述Nacos服务器地址,启用注解将Springboot微服务注册到Nacos服务器以建立依赖关系。
4.如权利要求3所述的动态修改微服务配置信息的方法,其特征在于,所述Springboot微服务在启动过程中,向所述配置管理服务器获取配置文件,包括:
响应于登录请求启动Springboot微服务,根据所述Springboot微服务与Nacos服务器的依赖关系进入所述Nacos服务器中;
在所述Nacos服务器中设置配置参数以生成Nacol.xml配置文件;
根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点。
5.如权利要求4所述的动态修改微服务配置信息的方法,其特征在于,所述根据所述依赖关系,将所述Nacol.xml配置文件中的配置参数动态发布到Springboot微服务节点,包括:
在Springboot微服务中创建bean类,通过bean工厂后置处理器接口将所述bean类实例化;
在所述bean类中扩展EnvironmentAware接口,所述接口重写SetEnvironment方法以从Nacos服务器中实时获取配置参数。
6.如权利要求1所述的动态修改微服务配置信息的方法,其特征在于,所述第三方组件至少包括以下任意一种:Mysql、Redis、Kafka以及Elasticsearch。
7.一种动态修改微服务配置信息系统,其特征在于,所述系统包括服务端、客户端;
客户端,用于响应登录请求启动Springboot微服务,并在Nacos服务器输入配置参数;
服务端,包括Springboot微服务器与Nacos服务器;
所述Nacos服务器,用于修改Nacos.xml文件中的配置参数,根据Springboot微服务器与Nacos服务器的依赖关系将所述配置参数动态发布到Springboot微服务器节点;
所述Springboot微服务器,与所述Nacos服务器连接,用于实时获取Nacos.xml文件中的配置参数并存储于Springboot微服务器应用环境中。
8.如权利要求7所述的动态修改微服务配置信息系统,其特征在于,所述实时获取Nacos.xml文件中的配置参数,包括:
客户端和服务端保持一个长连接以实时获取配置参数;
客户端定时从Nacos服务器获取配置参数并存储于Springboot微服务器应用环境中。
9.一种计算机设备,包括处理器、存储器及存储在所述存储器上并可在处理器上运行的动态修改微服务配置信息程序,所述处理器执行所述动态修改微服务配置信息程序时,实现如权利要求1-6任一项所述的方法。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有动态修改微服务配置信息程序,该动态修改微服务配置信息程序被处理器执行时实现权利要求1-6任一所述的方法。
CN202011259655.2A 2020-11-11 2020-11-11 动态修改微服务配置信息的方法及系统、存储介质 Active CN112363775B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202011259655.2A CN112363775B (zh) 2020-11-11 2020-11-11 动态修改微服务配置信息的方法及系统、存储介质

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202011259655.2A CN112363775B (zh) 2020-11-11 2020-11-11 动态修改微服务配置信息的方法及系统、存储介质

Publications (2)

Publication Number Publication Date
CN112363775A true CN112363775A (zh) 2021-02-12
CN112363775B CN112363775B (zh) 2023-03-24

Family

ID=74514462

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202011259655.2A Active CN112363775B (zh) 2020-11-11 2020-11-11 动态修改微服务配置信息的方法及系统、存储介质

Country Status (1)

Country Link
CN (1) CN112363775B (zh)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835650A (zh) * 2021-03-18 2021-05-25 南威软件股份有限公司 一种系统参数统一配置实时生效的方法及系统
CN113032419A (zh) * 2021-04-21 2021-06-25 上海微盟企业发展有限公司 一种多源数据聚合搜索方法、装置、设备及存储介质
CN113342423A (zh) * 2021-06-29 2021-09-03 北京奇艺世纪科技有限公司 一种配置文件更新方法及装置
CN113568673A (zh) * 2021-06-10 2021-10-29 北京旷视科技有限公司 初始化方法、装置、电子设备及计算机可读存储介质
CN113836372A (zh) * 2021-08-26 2021-12-24 北京臻观数智科技有限公司 一种基于分布式服务的配置中心数据可视化方法及系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0206391A2 (en) * 1985-05-30 1986-12-30 Automatic Dialer Partners Ltd. 1983 c/o Dasa Corporation General Partner Microcomputer controlled repertory dialer
CN111562950A (zh) * 2020-04-28 2020-08-21 中国银行股份有限公司 一种分布式应用参数动态发布的系统及方法
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0206391A2 (en) * 1985-05-30 1986-12-30 Automatic Dialer Partners Ltd. 1983 c/o Dasa Corporation General Partner Microcomputer controlled repertory dialer
CN111562950A (zh) * 2020-04-28 2020-08-21 中国银行股份有限公司 一种分布式应用参数动态发布的系统及方法
CN111796834A (zh) * 2020-06-30 2020-10-20 福信富通科技股份有限公司 一种可组合的微服务开发框架的部署方法、装置及设备

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
蒋勇: "基于微服务架构的基础设施设计", 《软件》 *

Cited By (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112835650A (zh) * 2021-03-18 2021-05-25 南威软件股份有限公司 一种系统参数统一配置实时生效的方法及系统
CN113032419A (zh) * 2021-04-21 2021-06-25 上海微盟企业发展有限公司 一种多源数据聚合搜索方法、装置、设备及存储介质
CN113032419B (zh) * 2021-04-21 2022-08-30 上海微盟企业发展有限公司 一种多源数据聚合搜索方法、装置、设备及存储介质
CN113568673A (zh) * 2021-06-10 2021-10-29 北京旷视科技有限公司 初始化方法、装置、电子设备及计算机可读存储介质
CN113342423A (zh) * 2021-06-29 2021-09-03 北京奇艺世纪科技有限公司 一种配置文件更新方法及装置
CN113342423B (zh) * 2021-06-29 2023-09-05 北京奇艺世纪科技有限公司 一种配置文件更新方法及装置
CN113836372A (zh) * 2021-08-26 2021-12-24 北京臻观数智科技有限公司 一种基于分布式服务的配置中心数据可视化方法及系统

Also Published As

Publication number Publication date
CN112363775B (zh) 2023-03-24

Similar Documents

Publication Publication Date Title
CN112363775B (zh) 动态修改微服务配置信息的方法及系统、存储介质
US11842222B2 (en) Using scripts to bootstrap applications with metadata from a template
US20220179682A1 (en) Task processing method, apparatus, and system based on distributed system
US20200226185A1 (en) Publishing rest api changes based on subscriber's customized request
US10826768B2 (en) Controlled node configuration
CN111752641A (zh) 微服务容器之间服务启动方法、装置、设备及存储介质
US11240317B2 (en) Diagnostic method and system for vehicle, and related device thereof
CN111431740A (zh) 数据的传输方法、装置、设备及计算机可读存储介质
CN111831191A (zh) 工作流配置方法、装置、计算机设备和存储介质
CN112637335B (zh) 主备模式服务部署方法、装置、设备及存储介质
JP7345921B2 (ja) マスタースレーブアーキテクチャのota差分更新方法とシステム
CN109614232B (zh) 任务处理方法、装置、存储介质和电子装置
CN113204353A (zh) 一种大数据平台组件部署方法及装置
CN113867600A (zh) 处理流式数据的开发方法、装置和计算机设备
CN113590433B (zh) 数据管理方法、数据管理系统和计算机可读存储介质
CN113419818B (zh) 基础组件部署方法、装置、服务器及存储介质
CN112698930B (zh) 一种获取服务器标识的方法、装置、设备及介质
CN111930565B (zh) 分布式管理系统中组件的进程故障自愈方法、装置及设备
CN114726905B (zh) 一种Tbox网络接入Android系统的方法、装置、设备及存储介质
CN115202907A (zh) 一种应用程序接口的运行方法、系统、计算机设备及介质
CN110324722B (zh) 直播间中数据的获取方法、装置、设备和存储介质
CN114257614A (zh) 一种多业务模式的医院大数据平台系统及资源调度方法
CN114816723A (zh) 一种负载均衡系统、方法及计算机可读存储介质
CN113596119A (zh) 边缘能力分发方法、系统、设备及计算机可读存储介质
CN113778673B (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