基于统一管理平台的微服务管理方法、装置和计算机设备与流程

文档序号:18450767发布日期:2019-08-17 01:15阅读:215来源:国知局
基于统一管理平台的微服务管理方法、装置和计算机设备与流程

本申请涉及到计算机领域,特别是涉及到一种基于统一管理平台的微服务管理方法、装置、计算机设备和存储介质。



背景技术:

微服务框架如今越来越流行,用于取代原先单一大型企业应用,以解决复杂度过高,耦合严重等问题。但由于微服务框架会将企业应用分为多个微服务,随着业务的增多,微服务数量与日俱增,这就给微服务的管理带来了极大的麻烦,例如多个微服务之间的相互调用,以及内部微服务与外界的交互。现有技术没有对微服务的统一管理,均是微服务之间直接通信以进行调用,随着微服务的数量增加,内部微服务之间的搜索开销、调用开销都会大大增加,而且杂乱的微服务导致管理成本的上升。另外,现有技术的内部微服务与外部微服务之间的通信难以实现,或是实现每一次通信时均需要针对性处理通信报文以实现信息、参量的映射,这将造成大量的冗余代码与重复的网络开销。



技术实现要素:

本申请的主要目的为提供一种基于统一管理平台的微服务管理方法、装置、计算机设备和存储介质,旨在利用统一管理平台对微服务进行统一管理,从而减少冗余代码与重复的网络开销。

为了实现上述发明目的,本申请提出一种基于统一管理平台的微服务管理方法,包括以下步骤:

接收第一微服务对指定微服务的调用请求;

判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;

若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;

若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;

若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

进一步地,所述接收第一微服务对指定微服务的调用请求的步骤之前,包括:

接收所述指定微服务发送的注册信息,所述注册信息包括所述指定微服务的名称、访问uri和是否对所有微服务公开的信息;

接收所述第一微服务对所述指定微服务的查询请求;

判断所述注册信息中的所述是否对所有微服务公开的选项是否为是;

若所述注册信息中的所述是否对所有微服务公开的选项为是,则将所述指定微服务的注册信息暴露给所述第一微服务。

进一步地,所述判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的步骤之后,包括:

若所述第一微服务与所述指定微服务均属于预设的微服务集群,则采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

进一步地,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤,包括:

若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;

若所述调用请求具有身份令牌,根据预设的身份令牌与权限对应关系,判断所述调用请求中的身份令牌是否具有调用所述指定服务的权限;

若所述调用请求中的身份令牌具有调用所述指定服务的权限,则判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配;

若所述调用请求的调用参数与所述指定微服务的预定参数相匹配,则判定所述调用请求合法。

进一步地,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤之后,包括:

若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法;

拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。

进一步地,所述若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的步骤之后,包括:

若所述调用请求的通信协议与所述指定微服务的预设通信协议相同,则依照所述调用请求的通信协议向所述指定微服务转发所述调用请求;

接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

进一步地,所述若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求的步骤之后,包括:

统计所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时;

判断所述被调用失败次数÷所述被调用次数的值是否大于预定失败阈值,并判断所述被调用平均耗时是否大于预定耗时阈值;

若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常;

通过预设的邮件、短信或者电话方式执行报警操作。

本申请提供一种基于统一管理平台的微服务管理装置,包括:

调用请求接收单元,用于接收第一微服务对指定微服务的调用请求;

微服务集群判断单元,用于判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;

合法性判断单元,用于若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;

通信协议判断单元,用于若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;

调用请求转发单元,用于若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

本申请提供一种计算机设备,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述任一项所述方法的步骤。

本申请提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一项所述方法的步骤。

本申请的基于统一管理平台的微服务管理方法、装置、计算机设备和存储介质,采用统一管理平台接收第一微服务对指定微服务的调用请求,根据预设的合法性检验规则检验所述调用请求是否合法,若所述调用请求合法,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。从而实现了对微服务的统一管理、减少冗余代码与重复的网络开销。

附图说明

图1为本申请一实施例的基于统一管理平台的微服务管理方法的流程示意图;

图2为本申请一实施例的基于统一管理平台的微服务管理装置的结构示意框图;

图3为本申请一实施例的计算机设备的结构示意框图。

本申请目的的实现、功能特点及优点将结合实施例,参照附图做进一步说明。

具体实施方式

为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不用于限定本申请。

参照图1,本申请实施例提供一种基于统一管理平台的微服务管理方法,包括以下步骤:

s1、接收第一微服务对指定微服务的调用请求;

s2、判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;

s3、若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;

s4、若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;

s5、若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

如上述步骤s1所述,统一管理平台接收第一微服务对指定微服务的调用请求。微服务是相对于单体式应用(将所有功能集中在一个应用中)而言,将一个应用分解为小的、互相连接的微服务。一个微服务一般完成某个特定的功能,同时也能调用其他微服务或者被其他微服务调用,从而共同完成某个应用中的所有或者部分功能。现有技术没有对微服务的统一管理,均是微服务之间直接通信以进行调用,随着微服务的数量增加,会带来不便。本申请的统一管理平台指对于微服务进行管理的平台,其中管理包括任意可行方式的管理,例如微服务注册、微服务发现、网关控制等等,微服务注册指接收微服务的注册信息,所述注册信息包括所述微服务的名称、访问uri和是否对所有微服务公开的信息等;微服务发现指主动搜集微服务的信息,包括从数据库、历史调用记录中搜集微服务信息,从而使微服务被发现;网关控制指控制微服务的访问权限,例如控制预定内部微服务是否有权限向外部进行信息通信。所述统一管理平台指能够对多个微服务进行管理的平台(终端、服务器)。

如上述步骤s2所述,判断所述第一微服务与所述指定微服务是否属于预设的微服务集群。其中预设的微服务集群优选为所述统一管理平台直接管理的微服务,也称为内部微服务集群。由于不同微服务集群内的微服务调用要求不同,例如通信协议不一定相同(例如基于http通信协议与基于其他通信协议的微服务之间无法直接调用),所以不同微服务集群之间进行直接互相调用并不可行。因此先判断所述第一微服务与所述指定微服务是否属于预设的微服务集群。其中判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的过程包括:获取所述第一微服务的服务名称与所述指定微服务的服务名称,判断所述第一微服务的服务名称与所述指定微服务的服务名称是否存在预设的注册信息列表(注册信息列表包括在所述统一管理平台中注册的微服务名称,用以表示微服务的身份)中,若所述第一微服务的服务名称与所述指定微服务的服务名称是否存在预设的注册信息列表中,则判定所述第一微服务与所述指定微服务属于预设的微服务集群。

如上述步骤s3所述,若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限。若所述第一微服务不属于预设的微服务集群而所述指定微服务属于预设的微服务集群,表明第一微服务与指定微服务不属于相同的微服务集群。因此需要先检验所述调用请求的合法性,其中检测合法性至少包括验证所述第一微服务的权限。其中检测合法性至少包括验证所述第一微服务的权限的过程包括:判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息。

如上述步骤s4所述,若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同。所述调用请求的通信协议与所述指定微服务的预设通信协议不同,那么根据所述调用请求无法直接发送给所述指定微服务。因此在确定所述调用请求合法之后,先判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同。具体判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的过程包括:提取所述调用请求(调用请求实质上即是一个信息,也即是报文,而报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,也包含了通信协议信息)中的通信协议部分,将所述通信协议部分与所述指定微服务的预设通信协议进行对比,若相同则判定所述调用请求的通信协议与所述指定微服务的预设通信协议相同。

如上述步骤s5所述,若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。为了将所述调用请求转发给所述指定微服务,应使所述调用请求的通信协议与所述指定微服务的预设通信协议。因此在所述调用请求的通信协议与所述指定微服务的预设通信协议不同的情况下,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。将所述调用请求的通信协议转换为所述指定微服务的预设通信协议的过程包括:提取所述调用请求中的全部信息,将所述调用请求中的全部信息填入基于所述指定微服务的预设通信协议生成的报文模板中,从而获得转化后的调用请求。进一步地,若所述指定微服务对所述调用请求进行了反馈,所述统一管理平台还接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息发送给所述第一微服务。

在一个实施方式中,所述接收第一微服务对指定微服务的调用请求的步骤s1之前,包括:

s001、接收所述指定微服务发送的注册信息,所述注册信息包括所述指定微服务的名称、访问uri和是否对所有微服务公开的信息;

s002、接收所述第一微服务对所述指定微服务的查询请求;

s003、判断所述注册信息中的所述是否对所有微服务公开的选项是否为是;

s004、若所述注册信息中的所述是否对所有微服务公开的选项为是,则将所述指定微服务的注册信息暴露给所述第一微服务。

如上所述,实现了微服务的注册。微服务集群中的微服务数量一般数量众多,且同一微服务的实例(例如更新版本的微服务即是一个实例)可能有多个,为了方便微服务之间的调用与发明,所述统一管理平台提供了注册功能,从而使微服务在统一管理平台留下注册信息,并使其他微服务能够发现进而调用。其中,所述注册信息包括所述指定微服务的名称、访问uri(统一资源标识符,uniformresourceidentifier)以及是否对所有微服务公开的选择。在接收所述指定微服务的注册信息之后,接收所述第一微服务对所述指定微服务的查询请求,若所述注册信息中的是否对所有微服务公开的选项为是,表明所述注册信息可以公开,则将所述指定微服务的注册信息暴露给所述第一微服务。从而所述第一微服务可以得到所述指定微服务的注册信息,进行发出调用申请。

在一个实施方式中,所述判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的步骤s2之后,包括:

s21、若所述第一微服务与所述指定微服务均属于预设的微服务集群,则采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

如上所述,实现了向所述指定微服务转发所述调用请求。由于所述第一微服务与所述指定微服务均属于预设的微服务集群,在同一微服务集群内都采用相同的通信协议进行互相调用,因此可以肯定所述调用请求的通信协议与所述指定微服务的预设通信协议相同,从而没必要再进行确认所述调用请求的通信协议。因此,直接采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤s3,包括:

s301、若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;

s302、若所述调用请求具有身份令牌,根据预设的身份令牌与权限对应关系,判断所述调用请求中的身份令牌是否具有调用所述指定服务的权限;

s303、若所述调用请求中的身份令牌具有调用所述指定服务的权限,则判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配;

s304、若所述调用请求的调用参数与所述指定微服务的预定参数相匹配,则判定所述调用请求合法。

如上所述,实现了根据预设的合法性检验规则检验所述调用请求是否合法。合法性检验是指检测所述调用请求是否符合调取的规则,以免采用错误非法的调用微服务。本实施方式的合法性检验包括三步,即身份认证、权限认证、参数认证,具体地包括:判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;判断所述调用请求中的身份令牌中否具有调用所述指定服务的权限;判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配。其中,身份令牌预先生成的过程包括:第一微服务发送到身份认证请求到所述统一管理平台进行认证;统一管理平台发送针对所述第一微服务生成的身份认证信息至第一微服务;第一微服务保存所述身份令牌,并在之后与所述统一管理平台进行交互时均附带所述身份令牌。其中,所述调用请求的调用参数与所述指定微服务的预定参数相匹配,是指所述调用参数不超过所述指定微服务的预定参数规定的范围,其中参数可以为任意参数,例如存储字段长度等。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤s3之后,包括:

s31、若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法;

s32、拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。

如上所述,实现了拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。如前述,采用的合法性检验包括三步,即身份认证、权限认证、参数认证。其中,任意一步检验未通过,即能表明不合法,即若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法。据此,拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。其中,所述判定所述调用请求不合法的理由即是身份认证、权限认证、参数认证三者中未通过的至少之一。

在一个实施方式中,所述若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的步骤s4之后,包括:

s41、若所述调用请求的通信协议与所述指定微服务的预设通信协议相同,则依照所述调用请求的通信协议向所述指定微服务转发所述调用请求;

s42、接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

如上所述,实现了将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。其中所述反馈信息包括,同意所述调用请求、拒绝所述调用请求、根据所述调用请求发送的相应信息。在本实施方式中,在确定所述调用请求合法、且所述调用请求的通信协议与所述指定微服务的预设通信协议相同之后,统一管理平台作为所述第一微服务与所述指定微服务的中转,接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

在一个实施方式中,所述若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求的步骤s5之后,包括:

s51、统计所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时;

s52、判断所述被调用失败次数÷所述被调用次数的值是否大于预定失败阈值,并判断所述被调用平均耗时是否大于预定耗时阈值;

s53、若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常;

s54、通过预设的邮件、短信或者电话方式执行报警操作。

如上所述,实现了判断所述指定微服务的健康状态。其中,所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时,均反应了所述指定微服务的健康状态。所述被调用失败次数÷所述被调用次数表示的是所述指定服务器的调用失败百分比,所述被调用平均耗时代表了所述指定服务器的响应速度,都能反应所述指定微服务的健康状态。若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常,因此通过预设的邮件、短信或者电话方式执行报警操作。其中,预设的邮件、短信或者电话的接收对象已经预先设定,例如为负责相应维护工作的工作人员。

本申请的基于统一管理平台的微服务管理方法,采用统一管理平台接收第一微服务对指定微服务的调用请求,根据预设的合法性检验规则检验所述调用请求是否合法,若所述调用请求合法,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。从而实现了对微服务的统一管理、减少冗余代码与重复的网络开销。

参照图2,本申请实施例提供一种基于统一管理平台的微服务管理装置,包括:

调用请求接收单元10,用于接收第一微服务对指定微服务的调用请求;

微服务集群判断单元20,用于判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;

合法性判断单元30,用于若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;

通信协议判断单元40,用于若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;

调用请求转发单元50,用于若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

如上述单元10所述,统一管理平台接收第一微服务对指定微服务的调用请求。微服务是相对于单体式应用(将所有功能集中在一个应用中)而言,将一个应用分解为小的、互相连接的微服务。一个微服务一般完成某个特定的功能,同时也能调用其他微服务或者被其他微服务调用,从而共同完成某个应用中的所有或者部分功能。现有技术没有对微服务的统一管理,均是微服务之间直接通信以进行调用,随着微服务的数量增加,会带来不便。本申请的统一管理平台指对于微服务进行管理的平台,其中管理包括任意可行方式的管理,例如微服务注册、微服务发现、网关控制等等,微服务注册指接收微服务的注册信息,所述注册信息包括所述微服务的名称、访问uri和是否对所有微服务公开的信息等;微服务发现指主动搜集微服务的信息,包括从数据库、历史调用记录中搜集微服务信息,从而使微服务被发现;网关控制指控制微服务的访问权限,例如控制预定内部微服务是否有权限向外部进行信息通信。所述统一管理平台指能够对多个微服务进行管理的平台(终端、服务器)。

如上述单元20所述,判断所述第一微服务与所述指定微服务是否属于预设的微服务集群。其中预设的微服务集群优选为所述统一管理平台直接管理的微服务,也称为内部微服务集群。由于不同微服务集群内的微服务调用要求不同,例如通信协议不一定相同(例如基于http通信协议与基于其他通信协议的微服务之间无法直接调用),所以不同微服务集群之间进行直接互相调用并不可行。因此先判断所述第一微服务与所述指定微服务是否属于预设的微服务集群。其中判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的过程包括:获取所述第一微服务的服务名称与所述指定微服务的服务名称,判断所述第一微服务的服务名称与所述指定微服务的服务名称是否存在预设的注册信息列表(注册信息列表包括在所述统一管理平台中注册的微服务名称,用以表示微服务的身份)中,若所述第一微服务的服务名称与所述指定微服务的服务名称是否存在预设的注册信息列表中,则判定所述第一微服务与所述指定微服务属于预设的微服务集群。

如上述单元30所述,若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限。若所述第一微服务不属于预设的微服务集群而所述指定微服务属于预设的微服务集群,表明第一微服务与指定微服务不属于相同的微服务集群。因此需要先检验所述调用请求的合法性,其中检测合法性至少包括验证所述第一微服务的权限。其中检测合法性至少包括验证所述第一微服务的权限的过程包括:判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息。

如上述单元40所述,若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同。所述调用请求的通信协议与所述指定微服务的预设通信协议不同,那么根据所述调用请求无法直接发送给所述指定微服务。因此在确定所述调用请求合法之后,先判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同。具体判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的过程包括:提取所述调用请求(调用请求实质上即是一个信息,也即是报文,而报文(message)是网络中交换与传输的数据单元,即站点一次性要发送的数据块。报文包含了将要发送的完整的数据信息,也包含了通信协议信息)中的通信协议部分,将所述通信协议部分与所述指定微服务的预设通信协议进行对比,若相同则判定所述调用请求的通信协议与所述指定微服务的预设通信协议相同。

如上述单元50所述,若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。为了将所述调用请求转发给所述指定微服务,应使所述调用请求的通信协议与所述指定微服务的预设通信协议。因此在所述调用请求的通信协议与所述指定微服务的预设通信协议不同的情况下,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。将所述调用请求的通信协议转换为所述指定微服务的预设通信协议的过程包括:提取所述调用请求中的全部信息,将所述调用请求中的全部信息填入基于所述指定微服务的预设通信协议生成的报文模板中,从而获得转化后的调用请求。进一步地,若所述指定微服务对所述调用请求进行了反馈,所述统一管理平台还接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息发送给所述第一微服务。

在一个实施方式中,所述装置,包括:

注册信息接收单元,用于接收所述指定微服务发送的注册信息,所述注册信息包括所述指定微服务的名称、访问uri和是否对所有微服务公开的信息;

查询请求接收单元,用于接收所述第一微服务对所述指定微服务的查询请求;

微服务公开判断单元,用于判断所述注册信息中的所述是否对所有微服务公开的选项是否为是;

微服务暴露单元,用于若所述注册信息中的所述是否对所有微服务公开的选项为是,则将所述指定微服务的注册信息暴露给所述第一微服务。

如上所述,实现了微服务的注册。微服务集群中的微服务数量一般数量众多,且同一微服务的实例(例如更新版本的微服务即是一个实例)可能有多个,为了方便微服务之间的调用与发明,所述统一管理平台提供了注册功能,从而使微服务在统一管理平台留下注册信息,并使其他微服务能够发现进而调用。其中,所述注册信息包括所述指定微服务的名称、访问uri(统一资源标识符,uniformresourceidentifier)以及是否对所有微服务公开的选择。在接收所述指定微服务的注册信息之后,接收所述第一微服务对所述指定微服务的查询请求,若所述注册信息中的是否对所有微服务公开的选项为是,表明所述注册信息可以公开,则将所述指定微服务的注册信息暴露给所述第一微服务。从而所述第一微服务可以得到所述指定微服务的注册信息,进行发出调用申请。

在一个实施方式中,所述装置,包括:

第二调用请求转发单元,用于若所述第一微服务与所述指定微服务均属于预设的微服务集群,则采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

如上所述,实现了向所述指定微服务转发所述调用请求。由于所述第一微服务与所述指定微服务均属于预设的微服务集群,在同一微服务集群内都采用相同的通信协议进行互相调用,因此可以肯定所述调用请求的通信协议与所述指定微服务的预设通信协议相同,从而没必要再进行确认所述调用请求的通信协议。因此,直接采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

在一个实施方式中,所述合法性判断单元30,包括:

身份令牌判断子单元,用于若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;

权限判断子单元,用于若所述调用请求具有身份令牌,根据预设的身份令牌与权限对应关系,判断所述调用请求中的身份令牌是否具有调用所述指定服务的权限;

参数判断子单元,用于若所述调用请求中的身份令牌具有调用所述指定服务的权限,则判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配;

合法判定子单元,用于若所述调用请求的调用参数与所述指定微服务的预定参数相匹配,则判定所述调用请求合法。

如上所述,实现了根据预设的合法性检验规则检验所述调用请求是否合法。合法性检验是指检测所述调用请求是否符合调取的规则,以免采用错误非法的调用微服务。本实施方式的合法性检验包括三步,即身份认证、权限认证、参数认证,具体地包括:判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;判断所述调用请求中的身份令牌中否具有调用所述指定服务的权限;判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配。其中,身份令牌预先生成的过程包括:第一微服务发送到身份认证请求到所述统一管理平台进行认证;统一管理平台发送针对所述第一微服务生成的身份认证信息至第一微服务;第一微服务保存所述身份令牌,并在之后与所述统一管理平台进行交互时均附带所述身份令牌。其中,所述调用请求的调用参数与所述指定微服务的预定参数相匹配,是指所述调用参数不超过所述指定微服务的预定参数规定的范围,其中参数可以为任意参数,例如存储字段长度等。

在一个实施方式中,所述装置,包括:

不合法判定单元,用于若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法;

调用请求拒绝单元,用于拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。

如上所述,实现了拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。如前述,采用的合法性检验包括三步,即身份认证、权限认证、参数认证。其中,任意一步检验未通过,即能表明不合法,即若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法。据此,拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。其中,所述判定所述调用请求不合法的理由即是身份认证、权限认证、参数认证三者中未通过的至少之一。

在一个实施方式中,所述装置,包括:

第三调用请求转发单元,用于若所述调用请求的通信协议与所述指定微服务的预设通信协议相同,则依照所述调用请求的通信协议向所述指定微服务转发所述调用请求;

反馈信息发送单元,用于接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

如上所述,实现了将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。其中所述反馈信息包括,同意所述调用请求、拒绝所述调用请求、根据所述调用请求发送的相应信息。在本实施方式中,在确定所述调用请求合法、且所述调用请求的通信协议与所述指定微服务的预设通信协议相同之后,统一管理平台作为所述第一微服务与所述指定微服务的中转,接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

在一个实施方式中,所述装置,包括:

统计单元,用于统计所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时;

阈值判断单元,用于判断所述被调用失败次数÷所述被调用次数的值是否大于预定失败阈值,并判断所述被调用平均耗时是否大于预定耗时阈值;

状态异常判定单元,用于若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常;

报警单元,用于通过预设的邮件、短信或者电话方式执行报警操作。

如上所述,实现了判断所述指定微服务的健康状态。其中,所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时,均反应了所述指定微服务的健康状态。所述被调用失败次数÷所述被调用次数表示的是所述指定服务器的调用失败百分比,所述被调用平均耗时代表了所述指定服务器的响应速度,都能反应所述指定微服务的健康状态。若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常,因此通过预设的邮件、短信或者电话方式执行报警操作。其中,预设的邮件、短信或者电话的接收对象已经预先设定,例如为负责相应维护工作的工作人员。

本申请的基于统一管理平台的微服务管理装置,采用统一管理平台接收第一微服务对指定微服务的调用请求,根据预设的合法性检验规则检验所述调用请求是否合法,若所述调用请求合法,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。从而实现了对微服务的统一管理、减少冗余代码与重复的网络开销。

参照图3,本发明实施例中还提供一种计算机设备,该计算机设备可以是服务器,其内部结构可以如图所示。该计算机设备包括通过系统总线连接的处理器、存储器、网络接口和数据库。其中,该计算机设计的处理器用于提供计算和控制能力。该计算机设备的存储器包括非易失性存储介质、内存储器。该非易失性存储介质存储有操作系统、计算机程序和数据库。该内存器为非易失性存储介质中的操作系统和计算机程序的运行提供环境。该计算机设备的数据库用于存储基于统一管理平台的微服务管理方法所用数据。该计算机设备的网络接口用于与外部的终端通过网络连接通信。该计算机程序被处理器执行时以实现一种基于统一管理平台的微服务管理方法。

上述处理器执行上述基于统一管理平台的微服务管理方法,包括以下步骤:接收第一微服务对指定微服务的调用请求;判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

在一个实施方式中,所述接收第一微服务对指定微服务的调用请求的步骤之前,包括:接收所述指定微服务发送的注册信息,所述注册信息包括所述指定微服务的名称、访问uri和是否对所有微服务公开的信息;接收所述第一微服务对所述指定微服务的查询请求;判断所述注册信息中的所述是否对所有微服务公开的选项是否为是;若所述注册信息中的所述是否对所有微服务公开的选项为是,则将所述指定微服务的注册信息暴露给所述第一微服务。

在一个实施方式中,所述判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的步骤之后,包括:若所述第一微服务与所述指定微服务均属于预设的微服务集群,则采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤,包括:若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;若所述调用请求具有身份令牌,根据预设的身份令牌与权限对应关系,判断所述调用请求中的身份令牌是否具有调用所述指定服务的权限;若所述调用请求中的身份令牌具有调用所述指定服务的权限,则判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配;若所述调用请求的调用参数与所述指定微服务的预定参数相匹配,则判定所述调用请求合法。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤之后,包括:若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法;拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。

在一个实施方式中,所述若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的步骤之后,包括:若所述调用请求的通信协议与所述指定微服务的预设通信协议相同,则依照所述调用请求的通信协议向所述指定微服务转发所述调用请求;接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

在一个实施方式中,所述若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求的步骤之后,包括:统计所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时;判断所述被调用失败次数÷所述被调用次数的值是否大于预定失败阈值,并判断所述被调用平均耗时是否大于预定耗时阈值;若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常;通过预设的邮件、短信或者电话方式执行报警操作。

本领域技术人员可以理解,图中示出的结构,仅仅是与本申请方案相关的部分结构的框图,并不构成对本申请方案所应用于其上的计算机设备的限定。

本申请的计算机设备,采用统一管理平台接收第一微服务对指定微服务的调用请求,根据预设的合法性检验规则检验所述调用请求是否合法,若所述调用请求合法,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。从而实现了对微服务的统一管理、减少冗余代码与重复的网络开销。

本申请一实施例还提供一种计算机可读存储介质,其上存储有计算机程序,计算机程序被处理器执行时实现基于统一管理平台的微服务管理方法,包括以下步骤:接收第一微服务对指定微服务的调用请求;判断所述第一微服务与所述指定微服务是否属于预设的微服务集群;若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限;若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同;若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。

在一个实施方式中,所述接收第一微服务对指定微服务的调用请求的步骤之前,包括:接收所述指定微服务发送的注册信息,所述注册信息包括所述指定微服务的名称、访问uri和是否对所有微服务公开的信息;接收所述第一微服务对所述指定微服务的查询请求;判断所述注册信息中的所述是否对所有微服务公开的选项是否为是;若所述注册信息中的所述是否对所有微服务公开的选项为是,则将所述指定微服务的注册信息暴露给所述第一微服务。

在一个实施方式中,所述判断所述第一微服务与所述指定微服务是否属于预设的微服务集群的步骤之后,包括:若所述第一微服务与所述指定微服务均属于预设的微服务集群,则采用所述调用请求的通信协议,向所述指定微服务转发所述调用请求。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤,包括:若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则判断所述调用请求是否具有身份令牌,所述身份令牌是所述统一管理平台针对所述第一微服务生成的身份认证信息;若所述调用请求具有身份令牌,根据预设的身份令牌与权限对应关系,判断所述调用请求中的身份令牌是否具有调用所述指定服务的权限;若所述调用请求中的身份令牌具有调用所述指定服务的权限,则判断所述调用请求的调用参数是否与所述指定微服务的预定参数相匹配;若所述调用请求的调用参数与所述指定微服务的预定参数相匹配,则判定所述调用请求合法。

在一个实施方式中,所述若所述第一微服务不属于预设的微服务集群,而所述指定微服务属于预设的微服务集群,则根据预设的合法性检验规则检验所述调用请求是否合法,其中所述预设的合法性检验规则至少包括验证所述第一微服务的权限的步骤之后,包括:若所述调用请求不具有身份令牌,或者若所述调用请求中的身份令牌不具有调用所述指定服务的权限,或者若所述调用请求的调用参数与所述指定微服务的预定参数不匹配,则判定所述调用请求不合法;拒绝所述调用请求,并向所述第一微服务发送判定所述调用请求不合法的理由。

在一个实施方式中,所述若所述调用请求合法,则判断所述调用请求的通信协议与所述指定微服务的预设通信协议是否相同的步骤之后,包括:若所述调用请求的通信协议与所述指定微服务的预设通信协议相同,则依照所述调用请求的通信协议向所述指定微服务转发所述调用请求;接收所述指定微服务对所述调用请求的反馈信息,并将所述反馈信息依照所述调用请求的通信协议发送给所述第一微服务。

在一个实施方式中,所述若所述调用请求的通信协议与所述指定微服务的预设通信协议不同,则将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求的步骤之后,包括:统计所述指定微服务的被调用次数、被调用失败次数和被调用平均耗时;判断所述被调用失败次数÷所述被调用次数的值是否大于预定失败阈值,并判断所述被调用平均耗时是否大于预定耗时阈值;若所述被调用失败次数÷所述被调用次数的值大于预定失败阈值,或者所述被调用平均耗时大于预定耗时阈值,则判定所述指定微服务的状态异常;通过预设的邮件、短信或者电话方式执行报警操作。

本申请的计算机可读存储介质,采用统一管理平台接收第一微服务对指定微服务的调用请求,根据预设的合法性检验规则检验所述调用请求是否合法,若所述调用请求合法,将所述调用请求的通信协议转换为所述指定微服务的预设通信协议,并依照所述指定微服务的预设通信协议向所述指定微服务转发所述调用请求。从而实现了对微服务的统一管理、减少冗余代码与重复的网络开销。

本领域普通技术人员可以理解实现上述实施例方法中的全部或部分流程,是可以通过计算机程序来指令相关的硬件来完成,所述的计算机程序可存储于一非易失性计算机可读取存储介质中,该计算机程序在执行时,可包括如上述各方法的实施例的流程。其中,本申请所提供的和实施例中所使用的对存储器、存储、数据库或其它介质的任何引用,均可包括非易失性和/或易失性存储器。非易失性存储器可以包括只读存储器(rom)、可编程rom(prom)、电可编程rom(eprom)、电可擦除可编程rom(eeprom)或闪存。易失性存储器可包括随机存取存储器(ram)或者外部高速缓冲存储器。作为说明而非局限,ram以多种形式可得,诸如静态ram(sram)、动态ram(dram)、同步dram(sdram)、双速据率sdram(ssrsdram)、增强型sdram(esdram)、同步链路(synchlink)dram(sldram)、存储器总线(rambus)直接ram(rdram)、直接存储器总线动态ram(drdram)、以及存储器总线动态ram(rdram)等。

需要说明的是,在本文中,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、装置、物品或者方法不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、装置、物品或者方法所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括该要素的过程、装置、物品或者方法中还存在另外的相同要素。

以上所述仅为本申请的优选实施例,并非因此限制本申请的专利范围,凡是利用本申请说明书及附图内容所作的等效结构或等效流程变换,或直接或间接运用在其他相关的技术领域,均同理包括在本申请的专利保护范围内。

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