服务接口管理方法、装置、介质和计算机设备与流程

文档序号:19786566发布日期:2020-01-24 13:39阅读:207来源:国知局
服务接口管理方法、装置、介质和计算机设备与流程

本发明涉及微服务领域,具体而言,本发明涉及一种服务接口管理方法、装置、介质和计算机设备。



背景技术:

在微服务化接口框架中包括很多服务器,每个服务器都有部署了很多不同的应用服务,即所述服务接口,但是服务器无法直接获取其他外部服务器部署的服务接口的状态信息,因此当服务器部署的服务接口出现问题的时候就不好进行问题定位,比如,现在某个服务器的服务接口异常,由于该服务器的服务接口在处理过程中其实是发生了很多与其他服务器的服务接口的通讯交互,所以当它异常时是很难一下子指定异常原因的,它只能在出现问题时经过查询日志、层层排查来定位问题,这种定位问题的方法效率较低。



技术实现要素:

本发明针对现有技术的缺点,提供了一种服务接口管理方法、装置、介质和计算机设备,通过本发明技术方案,能够有序管理框架内所有服务器上部署的服务接口的状态信息,能够快速定位状态异常的服务接口。

本发明实施例根据第一方面提供了一种服务接口管理方法,包括:

向探测名单上的服务器发送接口状态探测请求,获得所述服务器的服务接口的状态信息;

根据所述服务接口的状态信息更新服务接口状态表;

响应于来自具有信息获取权限的服务器的接口状态获取请求,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息;

将所述状态信息发送给所述具有信息获取权限的服务器。

进一步地,所述将所述状态信息发送给所述具有信息获取权限的服务器,之后包括:

将所述状态信息保存到缓存中;

当所述状态信息的缓存时长大于预设缓存时长阈值时,将所述状态信息从缓存中删除。

进一步地,所述从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息,包括:

确定与所述接口状态获取请求对应的服务接口标识;

判断缓存中是否有存储与所述服务接口标识对应的状态信息;

若有存储,从缓存中获取与所述服务接口标识对应的状态信息;

若没有存储,从预设数据库中的服务接口状态表获取与所述服务接口标识对应的状态信息。

进一步地,所述从缓存中获取与所述服务接口标识对应的状态信息,之后包括:

重置所述与所述服务接口标识对应的状态信息所对应的缓存时长。

进一步地,所述从缓存中获取与所述服务接口标识对应的状态信息,之后包括:

计算预设时间区间内所述与所述服务接口标识对应的状态信息所对应的信息获取频率;

若所述信息获取频率大于预设频率阈值,则将所述服务接口标识加入缓存白名单中。

进一步地,所述当所述状态信息的缓存时长大于预设缓存时长阈值时,将所述状态信息从缓存中删除,包括:

当所述状态信息的缓存时长大于预设缓存时长阈值时,判断所述状态信息对应的服务接口标识是否包含在缓存白名单中;

若包含在缓存白名单中,则不将所述状态信息从缓存中删除;

若不包含在缓存白名单中,则将所述状态信息从缓存中删除。

进一步地,所述根据所述服务接口的状态信息更新服务接口状态表,包括:

确定所述服务接口的服务接口标识;

将所述状态信息覆盖服务接口状态表中与所述服务接口标识对应的历史状态信息。

本发明实施例根据第二方面提供了一种服务接口管理装置,包括:

状态信息获取模块,用于向探测名单上的服务器发送接口状态探测请求,获得所述服务器的服务接口的状态信息;

状态表更新模块,用于根据所述服务接口的状态信息更新服务接口状态表;

获取请求响应模块,用于响应于来自具有信息获取权限的服务器的接口状态获取请求,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的服务接口的状态信息;

状态信息发送模块,用于将所述状态信息发送给所述具有信息获取权限的服务器。

本发明实施例根据第三方面提供了一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述的服务接口管理方法。

本发明实施例根据第四方面提供了一种计算机设备,所述计算机设备包括:

一个或多个处理器;

存储装置,用于存储一个或多个程序;

当所述一个或多个程序被所述一个或多个处理器执行,使得所述一个或多个处理器实现上述的服务接口管理方法。

在本发明实施例中,服务注册中心向探测名单上的服务器发送接口状态探测请求,以获得所述服务器的服务接口的状态信息,根据所述服务接口的状态信息更新服务接口状态表;响应于来自具有信息获取权限的服务器的接口状态获取请求,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息;将所述状态信息发送给所述具有信息获取权限的服务器,本方案建立服务注册中心来集中记录和管理框架内部服务器上部署的服务接口的状态信息,框架内部的服务器以及外部的服务器都可以向服务注册中心查询服务接口的状态信息,当有服务接口出现异常状态时,能够快速定位到状态异常的服务接口。

本发明附加的方面和优点将在下面的描述中部分给出,这些将从下面的描述中变得明显,或通过本发明的实践了解到。

附图说明

本发明上述的和/或附加的方面和优点从下面结合附图对实施例的描述中将变得明显和容易理解,其中:

图1为本发明一个实施例的服务接口管理方法流程示意图;

图2为本发明一个实施例的服务接口管理装置的结构示意图;

图3为本发明一种实施例的计算机设备的结构示意图。

具体实施方式

下面详细描述本发明的实施例,所述实施例的示例在附图中示出,其中自始至终相同或类似的标号表示相同或类似的元件或具有相同或类似功能的元件。下面通过参考附图描述的实施例是示例性的,仅用于解释本发明,而不能解释为对本发明的限制。

本技术领域技术人员可以理解,除非特意声明,这里使用的单数形式“一”、“一个”、“所述”和“该”也可包括复数形式,这里使用的“第一”、“第二”仅用于区别同一技术特征,并不对该技术特征的顺序和数量等加以限定。应该进一步理解的是,本发明的说明书中使用的措辞“包括”是指存在所述特征、整数、步骤、操作、元件和/或组件,但是并不排除存在或添加一个或多个其他特征、整数、步骤、操作、元件、组件和/或它们的组。

本技术领域技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本发明所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。

本发明实施例提供了一种服务接口管理方法,以下结合附图对本发明的具体实施方式进行详细介绍。如图1所示,本发明实施例提供的服务接口管理方法包括以下步骤:

s110:向探测名单上的服务器发送接口状态探测请求,获得所述服务器的服务接口的状态信息;

s120:根据所述服务接口的状态信息更新服务接口状态表;

s130:响应于来自具有信息获取权限的服务器的接口状态获取请求,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息;

s140:将所述状态信息发送给所述具有信息获取权限的服务器。

在本实施例中,服务注册中心可以是安装在微服务的框架内部任意一个服务器上的应用程序,也可以是在微服务的框架内部新增一个服务器并在其上安装的应用程序。服务注册中心负责探测在探测名单上的服务器上所部署的服务接口的状态信息,包括服务接口名称、对应的服务器标识、服务接口ip地址和端口号、运行状态,即运行正常或运行异常、开启状态,即开启或停止等信息。该探测名单上记录有框架内部允许探测的服务器的服务器标识,以及框架外部允许探测的服务器的服务器标识,可以理解的是,探测名单由管理人员根据实际应用场景配置,比如将框架内部的所有服务器都列入探测名单,也可以只将框架内的部分服务器列入探测名单。对于框架外部的服务器,该外部的服务器的工程需要把开发人员预先开发的jar包导入到其功能的包路径下,并在启动类中添加服务查询方法。这样,外部的服务器才具备了提供该服务器上部署的服务接口的接口状态给服务注册中心查询的功能。

服务注册中心会定时向探测名单上的服务器发送接口状态探测请求,探测频率,即服务注册中心向相关服务器发送接口状态探测请求的频率根据具体应用场景来确定,比如,每五分钟发送一次。

服务注册中心向探测名单上的服务器发送接口状态探测请求,当该服务器接收到该接口状态探测请求之后,会将所有已部署的服务接口的状态信息都发送给服务注册中心,服务注册中心会将该服务器反馈的服务接口的状态信息记录在存储在预设数据库的服务接口状态表中,其中,每个服务接口都有对应的唯一的服务接口标识,服务接口标识与其状态信息之间存在映射关系。

框架内部或者外部的服务器想要获取某个服务接口的状态信息时需要先从服务注册中心获得信息获取权限,之后才可以向服务注册中心发送接口状态获取请求,而服务注册中心在接收到接口状态获取请求之后就查询服务接口状态表,并将从服务接口状态表中获取到的与该服务器发送的接口状态获取请求所对应的状态信息,然后将获取到的服务接口的状态信息反馈给发送该接口状态获取请求的服务器。

本实施例建立了服务注册中心来集中记录和管理框架内部服务器上部署的服务接口的状态信息,从而框架内部的服务器以及外部的服务器都可以向服务注册中心查询服务接口的状态信息,当有服务接口出现异常状态时,能够快速定位到状态异常的服务接口。

在一个实施例中,还包括:

当所述服务器的服务接口的状态信息中的运行状态为运行异常时,向管理人员终端发送异常告警信息。

当某个服务接口运行异常时,自动向管理人员终端发送异常告警信息,使管理人员能够快速了解服务接口的异常状态。

进一步地,服务注册中心将服务接口的运行状态出现运行异常时,将该服务接口的服务接口标识记录到运行异常表,定时统计运行异常表,确定预设时间段内出现运行异常的次数超过预设异常次数阈值的服务接口的服务接口标识,将其发送给管理人员终端。

在一个实施例中,步骤s120:根据所述服务接口的状态信息更新服务接口状态表,包括:

s121:确定所述服务接口的服务接口标识;

s122:将所述状态信息覆盖服务接口状态表中与所述服务接口标识对应的历史状态信息。

在本实施例中,服务注册中心在探测到相关服务接口的状态信息之后,确定该服务接口的服务接口标识,并将最新探测到的该服务接口的状态信息保存到服务接口状态表中,将与该服务接口标识对应的历史状态信息删除,以节省存储空间。

优选地,如果探测到的服务接口的状态信息与上一次探测到的没有改变,那么就不进行更新。

在一个实施例中,步骤s140:将所述状态信息发送给所述具有信息获取权限的服务器,之后包括:

s150:将所述状态信息保存到缓存中;

s160:当所述状态信息的缓存时长大于预设缓存时长阈值时,将所述状态信息从缓存中删除。

在本实施例中,如果某个服务接口的状态信息被请求获取过,那么服务注册中心将该状态信息保存到缓存中,从而当下一次服务注册中心需要获取该状态信息时能够更快获取到。需要注意的是,缓存中只保存服务接口对应的最新探测到的状态信息。

然而,缓存的存储空间相比数据库更为有限,因此,当服务接口的状态信息保存到缓存之后,会记录其保存在缓存中的时间,即缓存时长。服务注册中心会监测保存在缓存中的服务接口的状态信息所对应的缓存时长,当状态信息的缓存时长大于管理人员预先配置的预设缓存时长阈值,比如30分钟时,就将其从缓存中删除,以释放缓存空间。

进一步地,步骤s130中,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息,包括:

s131:确定与所述接口状态获取请求对应的服务接口标识;

s132:判断缓存中是否有存储与所述服务接口标识对应的状态信息;

s133:若有存储,从缓存中获取与所述服务接口标识对应的状态信息;

s134:若没有存储,从预设数据库中的服务接口状态表获取与所述服务接口标识对应的状态信息。

在本实施例中,在上述将服务接口的状态信息保存到缓存中的基础上,如果服务注册中心接收到接口状态获取请求,先确定该接口状态获取请求中包含的服务接口标识,服务接口标识是用于区分服务接口的唯一标识,服务注册中心在探测到服务接口的状态信息后会将服务接口的服务接口标识与状态信息建立映射关系,因此通过服务接口标识就能够确定与其对应的状态信息。接着服务注册中心判断缓存中是否保存有该服务接口标识的状态信息,如果缓存中有保存该服务接口标识的状态信息,那么直接从缓存中获取该服务接口标识的状态信息;如果缓存中没有保存该服务接口标识的状态信息,那么就需要从预设数据库中的服务接口状态表中获取该服务接口标识的状态信息。

需要说明的是,服务注册中心在探测到服务接口的状态信息时,除了更新预设数据库中的服务接口状态表,还会将缓存中保存的相关状态信息进行更新。优选地,如果探测到的服务接口的状态信息与上一次探测到的没有改变,那么就不进行更新。

在一个实施例中,步骤s133中,从缓存中获取与所述服务接口标识对应的状态信息,之后包括:

重置所述与所述服务接口标识对应的状态信息所对应的缓存时长。

在本实施例中,如果缓存中的状态信息被服务器请求获取了,那么就将其对应的缓存时长重置为零,并重新为该状态信息进行计时。

容易理解的是,当该状态信息重新开始计时之后,如果再次被服务器请求获取,那么服务注册中心会再次将其对应的缓存时长重置为零。

在一个实施例中,步骤s133中,从缓存中获取与所述服务接口标识对应的状态信息,之后包括:

计算预设时间区间内所述与所述服务接口标识对应的状态信息所对应的信息获取频率;

若所述信息获取频率大于预设频率阈值,则将所述服务接口标识加入缓存白名单中。

在本实施例中,部分服务接口的状态信息被服务器请求获取的频率可能很高,为此就需要频繁地将其对应的缓存时长重置,为了减少这部分操作,可以设置一个缓存白名单,将经常被请求获取状态信息的服务接口的服务接口标识添加到该缓存白名单中。对于缓存白名单中的服务接口,不需要为其计算在缓存中的缓存时长。

预设时间区间和预设频率阈值可以由管理人员配置。

信息获取频率可以使用状态信息对应的信息获取次数除以预设时间区间得到,比如预设时间区间是2天,而信息获取次数是10次,则使用信息获取次数除以预设时间区间,即10(次)除以2(天),可以得到信息获取频率是5(次/天)。

进一步地,步骤:当所述状态信息的缓存时长大于预设缓存时长阈值时,将所述状态信息从缓存中删除,包括:

当所述状态信息的缓存时长大于预设缓存时长阈值时,判断所述状态信息对应的服务接口标识是否包含在缓存白名单中;

若包含在缓存白名单中,则不将所述状态信息从缓存中删除;

若不包含在缓存白名单中,则将所述状态信息从缓存中删除。

为了更好地理解本发明技术方案,本发明还提供了一种服务接口管理装置,如图2所示,包括以下模块:

状态信息获取模块110,用于向探测名单上的服务器发送接口状态探测请求,获得所述服务器的服务接口的状态信息;

状态表更新模块120,用于根据所述服务接口的状态信息更新服务接口状态表;

获取请求响应模块130,用于响应于来自具有信息获取权限的服务器的接口状态获取请求,从所述更新后的服务接口状态表中获取与所述接口状态获取请求对应的状态信息;

状态信息发送模块140,用于将所述状态信息发送给所述具有信息获取权限的服务器。

在一个实施例中,还包括:

告警信息发送模块,用于当所述服务器的服务接口的状态信息中的运行状态为运行异常时,向管理人员终端发送异常告警信息。

在一个实施例中,本发明提供的服务接口管理装置在执行状态信息发送模块140对应的功能之后,还执行以下模块对应的功能:

状态信息存储模块150,用于将所述状态信息保存到缓存中;

状态信息删除模块160,用于当所述状态信息的缓存时长大于预设缓存时长阈值时,将所述状态信息从缓存中删除。

在一个实施例中,所述获取请求响应模块130,包括:

接口标识确定子模块131,用于确定与所述接口状态获取请求对应的服务接口标识;

判断子模块132,用于判断缓存中是否有存储与所述服务接口标识对应的状态信息;

第一状态信息获取子模块133,用于当缓存中有存储与所述服务接口标识对应的状态信息时,从缓存中获取与所述服务接口标识对应的状态信息;

第二状态信息获取子模块134,用于当缓存中没有存储与所述服务接口标识对应的状态信息时,从预设数据库中的服务接口状态表获取与所述服务接口标识对应的状态信息。

在一个实施例中,所述获取请求响应模块130在执行第一状态信息获取子模块133对应的功能之后,还执行以下子模块对应的功能:

缓存时长重置子模块,用于重置所述与所述服务接口标识对应的状态信息所对应的缓存时长。

在一个实施例中,所述获取请求响应模块130在执行第一状态信息获取子模块133对应的功能之后,还执行以下子模块对应的功能:

频率计算子模块,用于计算预设时间区间内所述与所述服务接口标识对应的状态信息所对应的信息获取频率;

白名单加入模块,用于当所述信息获取频率大于预设频率阈值时,将所述服务接口标识加入缓存白名单中。

在一个实施例中,所述状态信息删除模块160,包括:

缓存时长判断子模块s161,用于当所述状态信息的缓存时长大于预设缓存时长阈值时,判断所述状态信息对应的服务接口标识是否包含在缓存白名单中;

执行子模块162,用于当所述状态信息对应的服务接口标识包含在缓存白名单中时,不将所述状态信息从缓存中删除,当所述状态信息对应的服务接口标识不包含在缓存白名单中时,则将所述状态信息从缓存中删除。

在一个实施例中,所述状态表更新模块120,包括:

标识确定子模块121,用于确定所述服务接口的服务接口标识;

状态表更新子模块122,用于将所述状态信息覆盖服务接口状态表中与所述服务接口标识对应的历史状态信息。

需要说明的是,本发明实施例提供的服务接口管理装置能够实现上述服务接口管理方法实施例所实现的功能,功能的具体实现参照上述服务接口管理方法中的描述,在此不再赘述。

本发明实施例还提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行时实现上述服务接口管理方法。其中,所述存储介质包括但不限于任何类型的盘(包括软盘、硬盘、光盘、cd-rom、和磁光盘)、rom(read-onlymemory,只读存储器)、ram(randomaccessmemory,随即存储器)、eprom(erasableprogrammableread-onlymemory,可擦写可编程只读存储器)、eeprom(electricallyerasableprogrammableread-onlymemory,电可擦可编程只读存储器)、闪存、磁性卡片或光线卡片。也就是,存储介质包括由设备(例如,计算机)以能够读的形式存储或传输信息的任何介质。可以是只读存储器,磁盘或光盘等。

本发明实施例还提供一种计算机设备,所述计算机设备包括:

一个或多个处理器210;

存储装置220,用于存储一个或多个程序200,

当所述一个或多个程序200被所述一个或多个处理器210执行,使得所述一个或多个处理器210实现上述服务接口管理方法。

如图3所示为本发明计算机设备的结构示意图,包括处理器210、存储装置220、输入单元230以及显示单元240等器件。本领域技术人员可以理解,图3示出的结构器件并不构成对所有计算机设备的限定,可以包括比图示更多或更少的部件,或者组合某些部件。存储装置220可用于存储应用程序200以及各功能模块,处理器210运行存储在存储装置220的应用程序200,从而执行设备的各种功能应用以及数据处理。存储装置220可以是内存储器或外存储器,或者包括内存储器和外存储器两者。内存储器可以包括只读存储器、可编程rom(prom)、电可编程rom(eprom)、电可擦写可编程rom(eeprom)、快闪存储器、或者随机存储器。外存储器可以包括硬盘、软盘、zip盘、u盘、磁带等。本发明所公开的存储装置包括但不限于这些类型的存储装置。本发明所公开的存储装置220只作为例子而非作为限定。

输入单元230用于接收信号的输入,以及接收用户输入的选择语音文件等相关请求。输入单元230可包括触控面板以及其它输入设备。触控面板可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板上或在触控面板附近的操作),并根据预先设定的程序驱动相应的连接装置;其它输入设备可以包括但不限于物理键盘、功能键(比如播放控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。显示单元240可用于显示用户输入的信息或提供给用户的信息以及计算机设备的各种菜单。显示单元240可采用液晶显示器、有机发光二极管等形式。处理器210是计算机设备的控制中心,利用各种接口和线路连接整个电脑的各个部分,通过运行或执行存储在存储装置220内的软件程序和/或模块,以及调用存储在存储装置内的数据,执行各种功能和处理数据。

在一实施方式中,计算机设备包括一个或多个处理器210,以及一个或多个存储装置220,一个或多个应用程序200,其中所述一个或多个应用程序200被存储在存储装置220中并被配置为由所述一个或多个处理器210执行,所述一个或多个应用程序200配置用于执行以上实施例所述的服务接口管理方法。

应该理解的是,虽然附图的流程图中的各个步骤按照箭头的指示依次显示,但是这些步骤并不是必然按照箭头指示的顺序依次执行。除非本文中有明确的说明,这些步骤的执行并没有严格的顺序限制,其可以以其他的顺序执行。而且,附图的流程图中的至少一部分步骤可以包括多个子步骤或者多个阶段,这些子步骤或者阶段并不必然是在同一时刻执行完成,而是可以在不同的时刻执行,其执行顺序也不必然是依次进行,而是可以与其他步骤或者其他步骤的子步骤或者阶段的至少一部分轮流或者交替地执行。

应该理解的是,在本发明各实施例中的各功能单元可集成在一个处理模块中,也可以各个单元单独物理存在,也可以两个或两个以上单元集成于一个模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。

以上所述仅是本发明的部分实施方式,应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。

当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1