CN113342423A - 一种配置文件更新方法及装置 - Google Patents
一种配置文件更新方法及装置 Download PDFInfo
- Publication number
- CN113342423A CN113342423A CN202110730171.XA CN202110730171A CN113342423A CN 113342423 A CN113342423 A CN 113342423A CN 202110730171 A CN202110730171 A CN 202110730171A CN 113342423 A CN113342423 A CN 113342423A
- Authority
- CN
- China
- Prior art keywords
- service
- server
- configuration file
- configuration
- implementation data
- 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
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/44—Arrangements for executing specific programs
- G06F9/445—Program loading or initiating
- G06F9/44505—Configuring for program initiating, e.g. using registry, configuration files
- G06F9/4451—User profiles; Roaming
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明实施例提供了一种配置文件更新方法、装置及电子设备,涉及互联网应用技术领域,应用于服务端,上述方法包括:检测服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,变化服务为:新增的服务或者实现数据被修改的服务;若存在,对服务端所提供服务的实现数据进行分析,获得服务端所提供服务的配置信息;基于配置信息,更新服务端中记录的配置文件,其中,服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。应用本发明实施例提供的方案更新配置文件,能够保证服务端正常向客户端反馈所需的服务数据。
Description
技术领域
本发明涉及互联网应用技术领域,特别是涉及一种配置文件更新方法及装置。
背景技术
服务端可以通过向客户端提供多种服务来满足用户需求。为了高效地响应客户端的服务请求,服务端中一般记录有配置文件,该配置文件用于记录各种服务的配置信息。在此基础上,服务端接收到客户端发送的服务请求后,可以基于上述配置文件中记录的配置信息调用服务,获得服务提供的服务数据,并向客户端反馈服务数据。
然而,实际应用中,为了增加用户粘度或者用户需求变更,服务端提供的服务可能会发生变化,为此需要更新上述配置文件,以保证服务端能够正常向客户端反馈服务数据。
发明内容
本发明实施例的目的在于提供一种配置文件更新方法及装置,以保证服务端能够正常向客户端反馈服务数据。具体技术方案如下:
第一方面,本发明实施例提供了一种配置文件更新方法,应用于服务端,所述方法包括:
检测所述服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,所述变化服务为:新增的服务或者实现数据被修改的服务;
若存在,对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息;
基于所述配置信息,更新所述服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
本发明的一个实施例中,所述基于所述配置信息,更新所述服务端中记录的配置文件,包括:
将所述配置信息作为所述velocity模板文件中配置项的取值添加至所述velocity模板文件中,生成新的配置文件;
基于新的配置文件更新所述服务端中记录的配置文件。
本发明的一个实施例中,所述服务端所提供服务的实现数据的接口为预设接口;
所述检测所述服务端所提供服务中是否存在变化服务,包括:
基于服务提供发现SPI机制对所述服务端所提供服务的实现数据进行检测,确定所述服务端所提供的服务中是否存在变化服务。
本发明的一个实施例中,所述对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息,包括:
从所述服务端所提供服务的实现数据中,确定Java注解数据;
根据所述Java注解数据,确定用于生成配置文件的实现数据;
根据所确定的实现数据,获得所述服务端所提供服务的配置信息。
本发明的一个实施例中,所述检测所述服务端所提供服务中是否存在变化服务,包括:
在所述服务端重启后,检测所述服务端所提供服务中是否存在变化服务。
第二方面,本发明实施例还提供了一种配置文件更新装置,应用于服务端,所述装置包括:
服务检测模块,用于检测所述服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,所述变化服务为:新增的服务或者实现数据被修改的服务;
信息获得模块,用于若存在,对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息;
文件更新模块,用于基于所述配置信息,更新所述服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
本发明的一个实施例中,所述文件更新模块,具体用于:
将所述配置信息作为所述velocity模板文件中配置项的取值添加至所述velocity模板文件中,生成新的配置文件;
基于新的配置文件更新所述服务端中记录的配置文件。
本发明的一个实施例中,所述服务端所提供服务的实现数据的接口为预设接口;
所述服务检测模块,具体用于:
基于服务提供发现SPI机制对所述服务端所提供服务的实现数据进行检测,确定所述服务端所提供的服务中是否存在变化服务。
本发明的一个实施例中,所述信息获得模块,具体用于:
从所述服务端所提供服务的实现数据中,确定Java注解数据;
根据所述Java注解数据,确定用于生成配置文件的实现数据;
根据所确定的实现数据,获得所述服务端所提供服务的配置信息。
本发明的一个实施例中,所述服务检测模块,具体用于:
在所述服务端重启后,检测所述服务端所提供服务中是否存在变化服务。
第三方面,本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现上述第一方面任一所述的配置文件更新方法步骤。
第四方面,本发明实施例还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述第一方面任一所述的配置文件更新方法步骤。
由上可见,应用本发明实施例所提供的方案更新配置文件时,首先检测服务端所提供的基于GraphQL的服务的实现数据中是否存在变化服务的实现数据,也就是说检测是否存在新增的实现数据或者被修改的实现数据,若存在,对服务端所提供服务的实现数据进行分析,从而获得服务端所提供服务的配置信息,并且基于配置信息,更新服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
这样在服务端提供服务时,可以通过检测服务的实现数据的变化,及时发现服务端所提供服务的变化。在检测到服务端所提供服务发生变化时,可以根据服务端所提供服务的实现数据得到服务端所提供服务的配置信息,从而及时更新服务端中记录的配置文件,以保证服务端能够正常向客户端反馈所需的服务数据。在检测到服务端所提供服务发生变化时,也不需要人工对服务端进行改进,而是可以根据服务端所提供服务的变化动态地自行更新服务端中记录的配置文件,有效地提高了服务端开发和运维服务的效率。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的第一种配置文件更新方法的流程示意图。
图2为本发明实施例提供的第二种配置文件更新方法的流程示意图。
图3为本发明实施例提供的第三种配置文件更新方法的流程示意图。
图4为本发明实施例提供的第四种配置文件更新方法的流程示意图。
图5为本发明实施例提供的第五种配置文件更新方法的流程示意图。
图6为本发明实施例提供的一种配置文件更新方法系统的架构图。
图7为本发明实施例提供的一种配置文件更新装置的结构示意图。
图8为本发明实施例提供的一种电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
由于应用现有技术向客户端提供服务时,若服务端提供的服务发生变化,需要更新配置文件,以保证服务端能够正常向客户端反馈服务数据,为解决这一技术问题,本发明实施例提供了一种配置文件更新方法及装置。
本发明的一个实施例中,提供了一种配置文件更新方法,上述方法包括:
检测服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,变化服务为:新增的服务或者实现数据被修改的服务;
若存在,对服务端所提供服务的实现数据进行分析,获得服务端所提供服务的配置信息;
基于配置信息,更新服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
由上可见,应用本发明实施例所提供的方案更新配置文件时,首先检测服务端所提供服务的实现数据中是否存在变化服务的实现数据,也就是说检测是否存在新增的实现数据或者被修改的实现数据,若存在,对服务端所提供服务的实现数据进行分析,从而获得服务端所提供服务的配置信息,并且基于配置信息,更新服务端中记录的配置文件。
这样在服务端提供服务时,可以通过检测服务的实现数据的变化,及时发现服务端所提供服务的变化。在检测到服务端所提供服务发生变化时,可以根据服务端所提供服务的实现数据得到服务端所提供服务的配置信息,从而及时更新服务端中记录的配置文件,以保证服务端能够正常向客户端反馈所需的服务数据。在检测到服务端所提供服务发生变化时,也不需要人工对服务端进行改进,而是可以根据服务端所提供服务的变化动态地自行更新服务端中记录的配置文件,有效地提高了服务端开发和运维服务的效率。
下面通过具体实施例对本发明实施例提供的配置文件更新方法进行详细说明。
本发明实施例的执行主体可以是下述用于提供服务的服务端,也可以是与上述服务端通信连接的其他端,例如,可以是能够与客户端通信的业务端等。
参见图1,提供了第一种配置文件更新方法的流程示意图,上述方法包括以下步骤S101-S103。
步骤S101:检测服务端所提供的基于GraphQL的服务中是否存在变化服务,若存在变化服务,执行步骤S102。
若不存在变化服务,可以结束文件更新流程。
其中,变化服务为:新增的服务或者实现数据被修改的服务。
GraphQL(Graph Quary Language,图状数据查询语言)是一种开源的API数据查询和操作语言,上述基于GraphQL的服务可以是基于这种语言开发的服务。
上述变化服务可以是与服务端原本可以提供的服务对比新增的服务或者被修改的服务,具体的,可以是新增了实现数据的服务或者是实现数据被修改的服务。服务的实现数据被修改可以是实现数据有所增加或者减少,也可以是在原有的实现数据内容上进行了更改。
在本发明的一个实施例中,上述检测服务端所提供服务中是否存在变化服务,可以获得服务端所提供服务的列表,作为第一服务列表,将第一服务列表与第二服务列表进行对比,当第一服务列表与第二服务列表不一致时,确定存在变化服务,其中,第二服务列表为:上一次进行变化服务检测时所获得的服务端所提供服务的列表。
另外,还可以对服务端所提供服务的实现数据与在前实现数据进行对比,若实现数据不一致,确定存在变化服务,其中,在前实现数据为:上一次进行变化服务检测时服务端所提供服务的实现数据。
在本发明的另一个实施例中,上述检测服务端所提供服务中是否存在变化服务还可以是检测服务端所存储的开发日志,将开发日志中关于服务实现数据的变化的记录内容作为检测结果。若开发日志中记录有服务实现数据的变化,则可以认为存在变化服务,若没有相关记录,则可以认为不存在变化服务。
例如,服务端原本可以提供的服务包括用户基础信息查询服务,本次检测结果显示新增了用户合同信息查询服务或者新增了用户合同信息查询服务的实现数据,那么可以认为存在变化服务,并且,变化服务为用户合同信息查询服务。或者,本次检测显示用户基础信息查询服务的部分实现数据发生了变化,那么也可以认为存在变化服务,并且,变化服务为用户基础信息查询服务。
步骤S102:对服务端所提供服务的实现数据进行分析,获得服务端所提供服务的配置信息。
步骤S103:基于配置信息,更新服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
上述配置文件可以由根据velocity(高速)模板引擎生成的模板文件而生成的GraphQL配置文件,velocity模板引擎可以在服务端生成可作为配置文件的模板文件,并将模板文件中的配置项取值设为空。在获得服务的配置信息后,将配置信息作为配置项的取值添加至模板文件中取值为空的配置项中,让配置项不再空置,从而得到完整的配置文件。
在本发明的一个实施例中,上述对服务端所提供服务的实现数据进行分析,可以是对服务端所存储的全部服务的实现数据进行分析,获得服务端所提供的全部服务的配置信息。上述基于配置信息,更新服务端中记录的配置文件,可以是基于服务端所提供的全部服务的配置信息,生成新的配置文件,将服务端记录的配置文件更新为此时生成的新的配置文件。
例如,存在的变化服务为用户合同信息查询服务,可以对服务端所存储的全部服务的实现数据进行分析,获得服务端所提供的全部服务的配置信息。基于服务端所提供的全部服务的配置信息,生成新的配置文件,将服务端记录的配置文件更新为此时生成的新的配置文件。
在本发明的另一个实施例中,上述存在变化服务时,还可以只对变化服务的实现数据进行分析,也就是,只对上述全部实现数据中的部分数据进行分析,获得变化服务的配置信息。上述基于配置信息,更新服务端中记录的配置文件,还可以基于服务端变化服务的配置信息,更改服务端记录的配置文件中的内容,这里的更改可以是添加、删除或是替换配置文件中的部分内容,其他未发生变化服务对应的内容不作改动,得到新配置文件,这样使得服务端记录的配置文件得以更新。
例如,变化服务为新增了用户合同信息查询服务,可以对用户合同信息查询服务的实现数据进行分析,获得用户合同查询信息服务的配置信息。将用户合同信息查询服务的配置信息,添加至服务端记录的配置文件中,得到新配置文件,从而实现对服务端记录的配置文件更新。
若变化服务为用户基础信息查询服务,具体变化是用户基础信息查询服务的部分实现数据发生变化,则可以对用户基础信息查询服务的实现数据进行分析,得到用户基础信息查询服务的新配置信息,这时将服务端记录的配置文件中用户基础信息查询服务的配置信息更新为上述新配置信息,从而实现对服务端记录的配置文件更新。
由上可见,应用本发明实施例所提供的方案更新配置文件时,首先检测服务端所提供服务的实现数据中是否存在变化服务的实现数据,也就是说检测是否存在新增的实现数据或者被修改的实现数据,若存在,对服务端所提供服务的实现数据进行分析,从而获得服务端所提供服务的配置信息,并且基于配置信息,更新服务端中记录的配置文件。
这样在服务端提供服务时,可以通过检测服务的实现数据的变化,及时发现服务端所提供服务的变化。在检测到服务端所提供服务发生变化时,可以根据服务端所提供服务的实现数据得到服务端所提供服务的配置信息,从而及时更新服务端中记录的配置文件,以保证服务端能够正常向客户端反馈所需的服务数据。在检测到服务端所提供服务发生变化时,也不需要人工对服务端进行改进,而是可以根据服务端所提供服务的变化动态地自行更新服务端中记录的配置文件,有效地提高了服务端开发和运维服务的效率。
本发明的一个实施例中,参见图2,提供了第二种配置文件更新方法的流程示意图,与上述图1所示实施例相比,本实施例中,上述步骤S103基于配置信息,更新服务端中记录的配置文件,可以通过以下步骤S103A-S103B实现。
步骤S103A:将配置信息作为velocity模板文件中配置项的取值添加至velocity模板文件中,生成新的配置文件。
上述模板文件中可以包括配置项,在velocity模板文件时,配置项的取值为空。在根据模板文件生成配置文件时,可以将配置信息作为配置项的取值,添加至velocity模板文件中取值为空的配置项中,得到完整的配置文件。
另外,上述模板文件还可以由JSP(JavaServerPages,Java服务器页面)、freemarker(自由标记)等模板引擎生成,具体可以根据应用需求选择生成模板文件的模板引擎,本发明实施例对此不做具体限定。
也就是说,在更新配置文件时,可以将获得的配置信息作为velocity模板文件中配置项的取值填入velocity模板文件中原本取值为空的配置项中,生成完整的新配置文件。
步骤S103B:基于新的配置文件更新服务端中记录的配置文件。
上述服务端中记录的配置文件为根据velocity模板文件生成的配置文件。
在本发明的一个实施例中,上述配置信息可以是服务端所提供的全部服务的配置信息,可以将服务端所提供的全部服务的配置信息作为新的取值填入上述根据模板引擎生成的velocity模板文件中取值为空的配置项,生成新配置文件,然后将服务端记录的配置文件更新为所生成的新配置文件。
在本发明的另一个实施例中,上述配置信息还可以只是服务端所提供的变化服务的配置信息,可以将变化服务的配置信息作为新的取值填入velocity模板文件中取值为空的配置项,生成新配置文件,然后依据新配置文件将服务端记录的配置文件中已更新配置项的取值更新为上述新配置文件中已更新配置项的取值。其中,已更新配置项为:上述新配置文件中取值不为空的配置项。
例如,变化服务为新增的用户合同信息查询服务,可以将用户合同信息查询服务的配置信息作为配置项取值填入velocity模板文件的配置项,生成新配置文件,这时上述已更新配置项为:用户合同信息查询服务的配置项,然后根据新配置文件将服务端记录的配置文件中用户合同信息查询服务的配置项的取值更新为新配置文件中用户合同信息查询服务的配置项的取值。
若变化服务为部分实现数据发生变化的用户基础信息查询服务,则可以将用户基础信息查询服务的配置信息作为配置项取值填入velocity模板文件的配置项,生成新配置文件,这时上述已更新配置项为:用户基础信息查询服务的配置项,然后根据新配置文件将服务端记录的配置文件中用户基础信息查询服务的配置项的取值更新为新配置文件中用户基础信息查询服务的配置项的取值。
由上可见,应用本发明实施例所提供的方案更新配置文件时,在更新配置文件时,只需将配置信息作为velocity模板文件中配置项的取值添加至velocity模板文件中,生成新的配置文件,而不需要将velocity模板文件可以生成的其他内容包括配置项的定义等全部重新生成,从而能够提高更新配置文件的效率,进而能够有效地提高服务端开发和运维的效率。
本发明的一个实施例中,参见图3,提供了第三种配置文件更新方法的流程示意图,与上述图1所示实施例相比,本实施例中,上述步骤S101检测服务端所提供服务中是否存在变化服务,可以通过以下步骤S101A实现。
步骤S101A:基于SPI机制对服务端所提供服务的实现数据进行检测,确定服务端所提供的服务中是否存在变化服务。
其中,上述SPI机制为服务提供发现(Service Provider Interface)。
在本发明实施例中,上述服务端所提供服务的实现数据的接口为预设接口,这样可以保证服务端所提供服务的接口是统一并且符合SPI机制的规范的。SPI机制是指可以根据SPI规范发现符合规范的服务实现数据,当服务端所提供服务的实现数据的接口均为预设接口,也就是说服务端所提供服务的接口统一并且均符合SPI规范时,才能够被检测到,从而可以得到检测服务端所提供服务中是否存在变化服务的检测结果,以确定是否存在变化服务。
例如,变化服务为用户合同信息查询服务,则用户合同信息查询服务的实现数据接口为预设接口,服务端所提供的其他服务的实现数据接口也为预设接口,才能够被检测到,从而确定存在用户合同信息查询服务这个变化服务。
由上可知,应用本发明实施例提供的方案更新配置文件时,当服务端所提供服务的实现数据的接口均为预设接口时,能够对服务端所提供的全部服务进行检测,从而快速得到检测服务端所提供服务中是否存在变化服务的检测结果,以确定是否存在变化服务,避免由于检测不到服务端所提供的服务而导致配置文件更新失败。
本发明的一个实施例中,参见图4,提供了第四种配置文件更新方法的流程示意图,与上述图1所示实施例相比,本实施例中,上述步骤S102对服务端所提供服务的实现数据进行分析,获得服务端所提供服务的配置信息,可以通过以下步骤S102A-S102C实现。
步骤S102A:从服务端所提供服务的实现数据中,确定Java注解数据。
上述Java注解数据是指实现数据中的可以用于解释说明、且以特殊标记标识的数据,这些特殊标记可以在编译、类加载和运行时被读取。在分析服务端所提供服务的实现数据时,可以根据实现数据中的注解数据,确定可以用于更新配置文件的配置信息对应的实现数据,然后对所确定的实现数据进行反编译,获得服务的配置信息。
步骤S102B:根据Java注解数据,确定用于生成配置文件的实现数据。
上述对所确定的实现数据进行反编译可以是根据Java的反射机制进行反编译,将服务的实现数据反编译得到服务的配置信息。也可以是根据Java的其他机制或其他技术手段对服务的实现数据进行转换以得到服务的配置信息,本发明实施例对此不做具体限定。
步骤S102C:根据所确定的实现数据,获得服务端所提供服务的配置信息。
在本发明的一个实施例中,可以根据注解数据确定服务端所提供的可以用于生成全部服务的配置信息的部分实现数据,进而获得全部服务的配置信息。也可以根据注解数据只确定可以用于生成变化服务的配置信息的部分实现数据,进而获得变化服务的配置信息。
例如,变化服务为用户合同信息查询服务,可以根据注解数据确定服务端所提供的可以用于生成全部服务的配置信息的部分实现数据,将其反编译得到全部服务的配置信息。也可以只确定可以用于生成用户合同信息查询服务的配置信息的部分实现数据,对所确定的实现数据进行反编译,获得用户合同信息查询服务的配置信息。
由上可知,应用本发明实施例提供的方案更新配置文件时,能够根据实现数据中的Java注解数据得到用于生成配置信息的服务实现数据,对其进行反编译从而得到所需的配置信息。因此可以在服务发生变化时,动态地获取更新配置文件所需的配置信息,从而动态地更新配置文件,而不再需要人工对配置文件进行处理,提高了更新配置文件的效率,也提高了服务端开发和运维的效率。
本发明的一个实施例中,参见图5,提供了第五种配置文件更新方法的流程示意图,与上述图1所示实施例相比,本实施例中,上述步骤S101检测服务端所提供服务中是否存在变化服务,可以通过以下步骤S101B实现。
步骤S101B:在服务端重启后,检测服务端所提供服务中是否存在变化服务。
在本发明的一个实施例中,在每次服务端重启后,对服务端所提供服务进行检测,可以获得服务端所提供服务的列表,作为第一服务列表,将第一服务列表与第二服务列表进行对比,当第一服务列表与第二服务列表不一致时,确定存在变化服务,其中,第二服务列表为:上一次服务端重启后进行变化服务检测时所获得的服务端所提供服务的列表。
另外,还可以对服务端所提供服务的实现数据与在前实现数据进行对比,若实现数据不一致,确定存在变化服务,其中,在前实现数据为:上一次服务端重启后进行变化服务检测时服务端所提供服务的实现数据。
若对比两次结果一致,则可以认为不存在变化服务。
本发明的另一个实施例中,也可以是在预设时间之后对服务端所提供服务进行检测,可以获得服务端所提供服务的列表,作为第一服务列表,将第一服务列表与第二服务列表进行对比,当第一服务列表与第二服务列表不一致时,确定存在变化服务,其中,第二服务列表为:预设时间之前进行变化服务检测时所获得的服务端所提供服务的列表。
另外,还可以对服务端所提供服务的实现数据与在前实现数据进行对比,若实现数据不一致,确定存在变化服务,其中,在前实现数据为:预设时间之前进行变化服务检测时服务端所提供服务的实现数据。
若对比两次结果一致,则可以认为不存在变化服务。
上述预设时间可以是24小时、三天、一个星期等,具体可以根据应用需求进行设置,本实施例对此不做具体限定。
在本发明的又一个实施例中,还可以在服务端重启后或者预设时间之后检测服务端的开发日志,检测开发日志中是否有关于服务端所提供服务的变化记录,若有变化记录,则可以认为存在变化服务,若没有变化记录,则可以认为不存在变化服务。
由上可知,应用本发明实施例的方案更新配置文件时,能够对服务端所提供的服务及时进行检测,所以可以及时发现变化服务,以及时更新配置文件,避免了由于配置文件更新不及时而导致的服务数据请求错误,从而保证了服务端能够正常向客户端反馈所需的服务数据。
在本发明的又一个实施例中,参见图6,提供了一种配置文件更新系统的架构图。
在本发明实施例中,业务端可以用于集成服务,业务端内部可以根据功能划分为网关部分和服务端,两者通过接口实现交互。服务端配置有多种服务的实现数据,例如基础服务的实现数据、合同服务的实现数据等。网关部分可以应用GraphQL进行Java开发,内部配置有velocity模板引擎可以用于生成velocity模板文件,velocity模板文件可以基于分析程序对服务的实现数据的分析,获得服务的配置信息,从而生成配置文件。
在配置文件更新过程中,网关部分可以基于SPI发现服务端的服务的实现数据,对其进行分析,得到用于生成配置文件的服务的配置信息,从而生成新配置文件,得以完成对配置文件的更新。
应用本发明实施例所提供的方案更新配置文件,能够将配置文件的更新仅在面向后端的业务端中进行实现,而不需要与面向客户的网关层进行交互,从而能够降低业务方和网关方的耦合性,实现对网关的解耦。
与上述配置文件更新方法相对应,本发明实施例还提供了一种配置文件更新装置。
参见图7,本发明实施例提供一种配置文件更新装置的结构示意图,所述装置包括:
服务检测模块701,用于检测所述服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,所述变化服务为:新增的服务或者实现数据被修改的服务;
信息获得模块702,用于若存在,对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息;
文件更新模块703,用于基于所述配置信息,更新所述服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
由上可见,应用本发明实施例所提供的方案更新配置文件时,首先检测服务端所提供的基于GraphQL的服务的实现数据中是否存在变化服务的实现数据,也就是说检测是否存在新增的实现数据或者被修改的实现数据,若存在,对服务端所提供服务的实现数据进行分析,从而获得服务端所提供服务的配置信息,并且基于配置信息,更新服务端中记录的配置文件。
这样在服务端提供服务时,可以通过检测服务的实现数据的变化,及时发现服务端所提供服务的变化。在检测到服务端所提供服务发生变化时,可以根据服务端所提供服务的实现数据得到服务端所提供服务的配置信息,从而及时更新服务端中记录的配置文件,以保证服务端能够正常向客户端反馈所需的服务数据。在检测到服务端所提供服务发生变化时,也不需要人工对服务端进行改进,而是可以根据服务端所提供服务的变化动态地自行更新服务端中记录的配置文件,有效地提高了服务端开发和运维服务的效率。
本发明的一个实施例中,所述文件更新模块703,具体用于:
将所述配置信息作为所述velocity模板文件中配置项的取值添加至所述velocity模板文件中,生成新的配置文件;
基于新的配置文件更新所述服务端中记录的配置文件。
由上可见,应用本发明实施例所提供的方案更新配置文件时,在更新配置文件时,只需将配置信息作为velocity模板文件中配置项的取值添加至velocity模板文件中,生成新的配置文件,而不需要将velocity模板文件可以生成的其他内容包括配置项的定义等全部重新生成,从而能够提高更新配置文件的效率,进而能够有效地提高服务端开发和运维的效率。
本发明的一个实施例中,所述服务检测模块701,具体用于:
基于服务提供发现SPI机制对所述服务端所提供服务的实现数据进行检测,确定所述服务端所提供的服务中是否存在变化服务。
由上可知,应用本发明实施例提供的方案更新配置文件时,当服务端所提供服务的实现数据的接口均为预设接口时,能够对服务端所提供的全部服务进行检测,从而快速得到检测服务端所提供服务中是否存在变化服务的检测结果,以确定是否存在变化服务,避免由于检测不到服务端所提供的服务而导致配置文件更新失败。
本发明的一个实施例中,所述信息获得模块702,具体用于:
从所述服务端所提供服务的实现数据中,确定Java注解数据;
根据所述Java注解数据,确定用于生成配置文件的实现数据;
根据所确定的实现数据,获得所述服务端所提供服务的配置信息。
由上可知,应用本发明实施例提供的方案更新配置文件时,能够根据实现数据中的Java注解数据得到用于生成配置信息的服务实现数据,对其进行反编译从而得到所需的配置信息。因此可以在服务发生变化时,动态地获取更新配置文件所需的配置信息,从而动态地更新配置文件,而不再需要人工对配置文件进行处理,提高了更新配置文件的效率,也提高了服务端开发和运维的效率。
本发明的一个实施例中,所述服务检测模块701,具体用于:
在所述服务端重启后,检测所述服务端所提供服务中是否存在变化服务。
由上可知,应用本发明实施例的方案更新配置文件时,能够对服务端所提供的服务及时进行检测,所以可以及时发现变化服务,以及时更新配置文件,避免了由于配置文件更新不及时而导致的服务数据请求错误,从而保证了服务端能够正常向客户端反馈所需的服务数据。
与上述配置文件更新方法相对应,本发明实施例还提供了一种电子设备。
参见图8,本发明实施例提供了一种电子设备的结构示意图,包括处理器801、通信接口802、存储器803和通信总线804,其中,处理器801,通信接口802,存储器803通过通信总线804完成相互间的通信;
存储器803,用于存放计算机程序;
处理器801,用于执行存储器上所存放的程序时,实现上述方法实施例所述的任一配置文件更新方法。
上述终端提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,简称PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,简称EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述终端与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,简称RAM),也可以包括非易失性存储器(non-volatile memory),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,简称CPU)、网络处理器(Network Processor,简称NP)等;还可以是数字信号处理器(Digital Signal Processor,简称DSP)、专用集成电路(Application SpecificIntegrated Circuit,简称ASIC)、现场可编程门阵列(Field-Programmable Gate Array,简称FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现上述实施例中任一所述的配置文件更新方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的配置文件更新方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于装置、电子设备、存储介质和程序产品实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。
Claims (10)
1.一种配置文件更新方法,其特征在于,应用于服务端,所述方法包括:
检测所述服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,所述变化服务为:新增的服务或者实现数据被修改的服务;
若存在,对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息;
基于所述配置信息,更新所述服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
2.根据权利要求1所述的方法,其特征在于,所述基于所述配置信息,更新所述服务端中记录的配置文件,包括:
将所述配置信息作为所述velocity模板文件中配置项的取值添加至所述velocity模板文件中,生成新的配置文件;
基于新的配置文件更新所述服务端中记录的配置文件。
3.根据权利要求1或2所述的方法,其特征在于,所述服务端所提供服务的实现数据的接口为预设接口;
所述检测所述服务端所提供服务中是否存在变化服务,包括:
基于服务提供发现SPI机制对所述服务端所提供服务的实现数据进行检测,确定所述服务端所提供的服务中是否存在变化服务。
4.根据权利要求1或2所述的方法,其特征在于,所述对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息,包括:
从所述服务端所提供服务的实现数据中,确定Java注解数据;
根据所述Java注解数据,确定用于生成配置文件的实现数据;
根据所确定的实现数据,获得所述服务端所提供服务的配置信息。
5.根据权利要求1或2所述的方法,其特征在于,所述检测所述服务端所提供服务中是否存在变化服务,包括:
在所述服务端重启后,检测所述服务端所提供服务中是否存在变化服务。
6.一种配置文件更新装置,其特征在于,应用于服务端,所述装置包括:
服务检测模块,用于检测所述服务端所提供的基于GraphQL的服务中是否存在变化服务,其中,所述变化服务为:新增的服务或者实现数据被修改的服务;
信息获得模块,用于若存在,对所述服务端所提供服务的实现数据进行分析,获得所述服务端所提供服务的配置信息;
文件更新模块,用于基于所述配置信息,更新所述服务端中记录的配置文件,其中,所述服务端中记录的配置文件为:根据velocity模板文件生成的GraphQL配置文件。
7.根据权利要求6所述的装置,其特征在于,所述文件更新模块,具体用于:
将所述配置信息作为所述velocity模板文件中配置项的取值添加至所述velocity模板文件中,生成新的配置文件;
基于新的配置文件更新所述服务端中记录的配置文件。
8.根据权利要求6或7任一项所述的装置,其特征在于,所述服务端所提供服务的实现数据的接口为预设接口;
所述服务检测模块,具体用于:
基于服务提供发现SPI机制对所述服务端所提供服务的实现数据进行检测,确定所述服务端所提供的服务中是否存在变化服务。
9.一种电子设备,其特征在于,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-5任一所述的方法步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现权利要求1-5任一所述的方法步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110730171.XA CN113342423B (zh) | 2021-06-29 | 2021-06-29 | 一种配置文件更新方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202110730171.XA CN113342423B (zh) | 2021-06-29 | 2021-06-29 | 一种配置文件更新方法及装置 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN113342423A true CN113342423A (zh) | 2021-09-03 |
CN113342423B CN113342423B (zh) | 2023-09-05 |
Family
ID=77481476
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202110730171.XA Active CN113342423B (zh) | 2021-06-29 | 2021-06-29 | 一种配置文件更新方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN113342423B (zh) |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185961A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Flexible visualization for services |
US20170201417A1 (en) * | 2015-04-16 | 2017-07-13 | Go Daddy Operating Company, LLC | Dns file settings deferral |
CN107506218A (zh) * | 2017-09-14 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 一种配置文件的管理方法及管理系统 |
US20180082228A1 (en) * | 2016-09-20 | 2018-03-22 | Accenture Global Solutions Limited | Digital project management office |
US20180314518A1 (en) * | 2017-04-28 | 2018-11-01 | Servicenow, Inc. | Systems and methods for tracking configuration file changes |
US20180322027A1 (en) * | 2017-05-06 | 2018-11-08 | Servicenow, Inc. | Systems and methods for service catalog analysis |
CN109918435A (zh) * | 2019-02-27 | 2019-06-21 | 北京奇艺世纪科技有限公司 | 一种业务接口的处理方法及系统 |
CN111399822A (zh) * | 2020-03-17 | 2020-07-10 | 深圳市炎华信息技术有限公司 | 微服务开发方法、装置、设备及计算机存储介质 |
WO2020237797A1 (zh) * | 2019-05-31 | 2020-12-03 | 烽火通信科技股份有限公司 | 一种微服务框架下动态配置管理方法及系统 |
CN112363775A (zh) * | 2020-11-11 | 2021-02-12 | 深圳力维智联技术有限公司 | 动态修改微服务配置信息的方法及系统、存储介质 |
-
2021
- 2021-06-29 CN CN202110730171.XA patent/CN113342423B/zh active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20100185961A1 (en) * | 2009-01-20 | 2010-07-22 | Microsoft Corporation | Flexible visualization for services |
US20170201417A1 (en) * | 2015-04-16 | 2017-07-13 | Go Daddy Operating Company, LLC | Dns file settings deferral |
US20180082228A1 (en) * | 2016-09-20 | 2018-03-22 | Accenture Global Solutions Limited | Digital project management office |
US20180314518A1 (en) * | 2017-04-28 | 2018-11-01 | Servicenow, Inc. | Systems and methods for tracking configuration file changes |
US20180322027A1 (en) * | 2017-05-06 | 2018-11-08 | Servicenow, Inc. | Systems and methods for service catalog analysis |
CN107506218A (zh) * | 2017-09-14 | 2017-12-22 | 北京京东尚科信息技术有限公司 | 一种配置文件的管理方法及管理系统 |
CN109918435A (zh) * | 2019-02-27 | 2019-06-21 | 北京奇艺世纪科技有限公司 | 一种业务接口的处理方法及系统 |
WO2020237797A1 (zh) * | 2019-05-31 | 2020-12-03 | 烽火通信科技股份有限公司 | 一种微服务框架下动态配置管理方法及系统 |
CN111399822A (zh) * | 2020-03-17 | 2020-07-10 | 深圳市炎华信息技术有限公司 | 微服务开发方法、装置、设备及计算机存储介质 |
CN112363775A (zh) * | 2020-11-11 | 2021-02-12 | 深圳力维智联技术有限公司 | 动态修改微服务配置信息的方法及系统、存储介质 |
Also Published As
Publication number | Publication date |
---|---|
CN113342423B (zh) | 2023-09-05 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN108156022B (zh) | 一种服务调用方法、装置及电子设备 | |
CN110297689B (zh) | 智能合约执行方法、装置、设备及介质 | |
US11714629B2 (en) | Software dependency management | |
US11762763B2 (en) | Orchestration for automated performance testing | |
CN111314459A (zh) | 一种业务请求方法、装置、电子设备及存储介质 | |
CN110956269B (zh) | 数据模型的生成方法、装置、设备以及计算机存储介质 | |
CN110365724B (zh) | 任务处理方法、装置及电子设备 | |
CN101727475B (zh) | 一种获取数据库访问过程的方法、装置及系统 | |
JP2022100301A (ja) | ソフトウェア・アップグレードがコンピューティング・デバイスに与える潜在的な影響を判定するための方法、コンピュータ・プログラム、および更新推奨コンピュータ・サーバ(ソフトウェア・アップグレードの安定性の推奨) | |
WO2021120913A1 (zh) | 应用加载方法、装置、用户终端和服务器 | |
CN110334031B (zh) | 内存分配代码检测方法、装置、计算机设备及存储介质 | |
WO2023151397A1 (zh) | 应用程序部署方法、装置、设备及介质 | |
US9672020B2 (en) | Selectively loading precompiled header(s) and/or portion(s) thereof | |
CN113342423B (zh) | 一种配置文件更新方法及装置 | |
CN116360931A (zh) | 一种链路追踪方法、装置、系统及存储介质 | |
CN110083509B (zh) | 一种日志数据的规整方法及装置 | |
US9369352B1 (en) | Method of capturing server and operating system metrics for virtual to physical topology reporting | |
CN110888643A (zh) | 页面处理方法及装置 | |
US20230063880A1 (en) | Performing quality-based action(s) regarding engineer-generated documentation associated with code and/or application programming interface | |
US20240078107A1 (en) | Performing quality-based action(s) regarding engineer-generated documentation associated with code and/or application programming interface | |
CN115686933A (zh) | 一种无服务器工作流函数异常重试方法和装置 | |
US20220237021A1 (en) | Systems and methods of telemetry diagnostics | |
CN116795867A (zh) | 数据处理方法、装置、电子设备和介质 | |
CN108399223B (zh) | 一种数据获取方法、装置及电子设备 | |
US20240103853A1 (en) | Code maintenance system |
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 |