一种微服务架构中的服务访问方法、装置、设备
技术领域
本发明涉及服务访问领域,特别涉及一种微服务架构中的服务访问方法、装置、设备及计算机可读存储介质。
背景技术
微服务架构是一项在云中围绕业务领域组件来创建和部署应用和服务的新技术。在微服务架构中,可以预先设置灰度服务和对应的灰度用户,并且仅灰度用户可以访问这些灰度服务,以便根据灰度用户的使用情况对该灰度服务进行修复和再次开发。在灰度用户发起对象访问请求时,需要为该对象访问请求设置对应的目标服务访问链表,确定该对象访问请求能够访问哪些服务实例。现有技术中,一般是预先直接为各对象访问请求配置对应的目标服务访问链表,以便对象访问请求按照该目标服务访问链表进行服务访问。但是按照现有技术的方法,可能存在服务访问链表中的服务实例不存在,造成对象访问请求不可达的情况。
因此,如何提高服务访问的准确度和效率,是本领域技术人员目前需要解决的技术问题。
发明内容
有鉴于此,本发明的目的在于提供一种微服务架构中的服务访问方法,能够提高服务访问的准确度和效率;本发明的另一目的是提供一种微服务架构中的服务访问装置、设备及计算机可读存储介质,均具有上述有益效果。
为解决上述技术问题,本发明提供一种微服务架构中的服务访问方法,应用于网关,包括:
当接收到对象访问请求时,确定出与所述对象访问请求对应的请求服务实例列表;
从注册中心获取所有服务实例,并根据所述所有服务实例中的各服务实例的策略配置参数将各所述服务实例分组,得到分组服务实例列表;
根据各所述分组服务实例列表和所述请求服务实例列表的策略配置参数确定出目标服务访问链表;
将所述对象访问请求分发给所述目标服务访问链表中的各目标服务实例。
优选地,进一步包括:
当所述对象访问请求所要访问的目标服务的各服务实例中不存在与所述请求服务实例对应的服务实例时,发出对应的第一提示信息。
优选地,进一步包括:
当接收到所述对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,确定出缺失服务实例;
从所述目标服务的所述服务实例中确定出替代服务实例,并利用所述替代服务实例确定出所述目标服务访问链表。
优选地,所述从注册中心获取所有服务实例,并根据所述所有服务实例中的各服务实例的策略配置参数将各所述服务实例分组,得到分组服务实例列表的过程,具体包括:
从所述注册中心获取所述所有服务实例;
分别判断所述所有服务实例中的各所述服务实例是否预先设置有所述策略配置参数;
若是,则获取所述策略配置参数;
若否,则按照预设规则为所述服务实例设置对应的策略配置参数;
根据各所述服务实例的所述策略配置参数将各所述服务实例分组,得到所述分组服务实例列表。
优选地,当接收到所述对象访问请求的次数达到所述预设次数且均未确定出对应的目标服务访问链表时,进一步包括:
发出对应的第二提示信息。
优选地,所述当接收到对象访问请求时,确定出与所述对象访问请求对应的请求服务实例列表的过程,具体包括:
当接收到所述对象访问请求时,确定出与所述对象访问请求对应的目标服务的请求服务名称;
根据所述请求服务名称确定出所述注册中心中与所述请求服务名称对应的名称服务实例列表;
根据所述对象访问请求的目标用户的用户身份的策略配置参数和所述名称服务实例列表确定出所述请求服务实例列表。
优选地,所述策略配置参数具体包括:组、环境和版本。
为解决上述技术问题,本发明还提供一种微服务架构中的服务访问装置,包括:
第一确定模块,用于当接收到对象访问请求时,确定出与所述对象访问请求对应的请求服务实例列表;
分组模块,用于从注册中心获取所有服务实例,并根据所述所有服务实例中的各服务实例的策略配置参数将各所述服务实例分组,得到分组服务实例列表;
第二确定模块,用于根据各所述分组服务实例列表和所述请求服务实例列表的策略配置参数确定出目标服务访问链表;
设置模块,用于将所述对象访问请求分发给所述目标服务访问链表中的各目标服务实例。
为解决上述技术问题,本发明还提供一种微服务架构中的服务访问设备,包括:
存储器,用于存储计算机程序;
处理器,用于执行所述计算机程序时实现上述任一种微服务架构中的服务访问方法的步骤。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现上述任一种微服务架构中的服务访问方法的步骤。
本发明提供的一种微服务架构中的服务访问方法,应用于网关,包括:当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表;从注册中心获取所有服务实例,并根据所述所有服务实例中的各服务实例的策略配置参数将各所述服务实例分组,得到分组服务实例列表;根据各分组服务实例列表和请求服务实例列表的策略配置参数确定出目标服务访问链表;将对象访问请求分发给目标服务访问链表中的各目标服务实例。可见,本方法中的目标服务访问链表是根据对象访问请求和通过注册中心中的所有服务实例确定出的分组服务实例列表自适应匹配确定出的,因此目标服务访问链表与对象访问请求相匹配程度更高,因此能够相对提高服务访问的准确度和效率。
为解决上述技术问题,本发明还提供了一种微服务架构中的服务访问装置、设备及计算机可读存储介质,均具有上述有益效果。
附图说明
为了更清楚地说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
图1为本发明实施例提供的一种微服务架构中的服务访问方法的流程图;
图2为本发明实施例提供的另一种微服务架构中的服务访问方法的流程图;
图3为本发明实施例提供的再一种微服务架构中的服务访问方法的流程图;
图4为本发明实施例提供的一种微服务架构中的服务访问装置的结构图;
图5为本发明实施例提供的一种微服务架构中的服务访问设备的结构图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
本发明实施例的核心是提供一种微服务架构中的服务访问方法,能够提高服务访问的准确度和效率;本发明的另一核心是提供一种微服务架构中的服务访问装置、设备及计算机可读存储介质,均具有上述有益效果。
为了使本领域技术人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。
图1为本发明实施例提供的一种微服务架构中的服务访问方法的流程图。如图1所示,一种微服务架构中的服务访问方法,应用于网关,包括:
S10:当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表。
具体的,对象访问请求指的是由客户端发起的要访问目标服务的请求信息,本实施例对对象访问请求的具体类型不做限定。具体的,在接收到对象访问请求之后,根据与对象访问请求对应的请求服务实例确定出对应的请求服务实例列表。可以理解的是,在本实施例中,请求服务实例列表中一般包括至少一个请求服务实例,以便进行后的操作。
S20:从注册中心获取所有服务实例,并根据所有服务实例中的各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表。
具体的,从注册中心中获取所有服务实例,所有服务实例组成服务实例列表,即根据获取到的所有服务实例确定出包括所有服务实例的服务实例列表;然后根据服务实例列表中的各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表。
需要说明的是,策略配置参数根据实际需求设置,本实施例对此不做具体的限定。可以理解的是,在对注册中心的所有服务实例进行分组之后,得到至少一个分组服务实例列表,同一分组服务实例列表中的各服务实例的策略配置参数相同。
S30:根据各分组服务实例列表和请求服务实例列表的策略配置参数确定出目标服务访问链表;
S40:将对象访问请求分发给目标服务访问链表中的各目标服务实例。
具体的,从分组服务实例列表中确定出与请求服务实例列表的策略配置参数对应的分组服务实例列表,并根据该分组服务实例列表中的各服务实例确定出对应的目标服务访问链表;即,选中与请求服务实例列表的策略配置参数对应的分组服务实例列表,该选中的分组服务实例列表中的各服务实例即为目标服务实例,目标服务实例也就是对象访问请求的访问范围;再将该对象访问请求分发给目标服务访问链表中的各目标服务实例,以便根据目标服务实例对目标服务进行对象访问。
本发明实施例提供的一种微服务架构中的服务访问方法,应用于网关,包括:当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表;从注册中心获取所有服务实例,并根据所有服务实例中的各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表;根据各分组服务实例列表和请求服务实例列表的策略配置参数确定出目标服务访问链表;将对象访问请求分发给目标服务访问链表中的各目标服务实例。可见,本方法中的目标服务访问链表是根据对象访问请求和通过注册中心中的所有服务实例确定出的分组服务实例列表自适应匹配确定出的,因此目标服务访问链表与对象访问请求相匹配程度更高,因此能够相对提高服务访问的准确度和效率。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,一种微服务架构中的服务访问方法进一步包括:
当对象访问请求所要访问的目标服务的各服务实例中不存在与请求服务实例对应的服务实例时,发出对应的第一提示信息。
具体的,在本实施例中,是在接收到对象访问请求并根据对象访问请求确定出对应的请求服务实例之后,确定出与对象访问请求对应的目标服务的服务实例,并判断对象访问请求所要访问的目标服务的各服务实例中是否存在与请求服务实例对应的服务实例,若不存在,则进一步触发预先设置的提示装置发出第一提示信息,以提示用户当前无法得出与对象访问请求对应的目标服务访问链表的情况。
请参考图2,图2为本发明实施例提供的另一种微服务架构中的服务访问方法的流程图。具体的,当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表的过程,具体包括:
S11:接收对象访问请求,并根据对象访问请求确定出对应的请求服务实例;
S12:确定出与对象访问请求对应的目标服务的服务实例,并判断对象访问请求所要访问的目标服务的各服务实例中是否存在与请求服务实例对应的服务实例;若存在,则调用S13,若不存在,则调用S14;
S13:确定出与对象访问请求对应的请求服务实例列表;
S14:发出第一提示信息。
需要说明的是,本实施例对第一提示信息的具体类型不做限定,例如可以是通过触发蜂鸣器/指示灯等提示装置运行发出第一提示信息。
作为优选的实施方式,进一步包括:
S50:当接收到对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,确定出缺失服务实例;
S60:从目标服务的服务实例中确定出替代服务实例,并利用替代服务实例确定出目标服务访问链表。
具体的,在实际操作中,对未能够成功响应的对象访问请求进行计数,即在接收到对象访问请求后,若未根据该对象访问请求确定出对应的目标服务访问链表,则累计计数;当接收到对象访问请求的次数达到预设次数,且针对这些对象访问请求均未能够确定出对应的目标服务访问链表,表示该对象访问请求所要访问的目标服务中不存在该对象访问请求所需访问的某些服务实例,因此确定出缺失服务实例。然后,从目标服务的服务实例中确定出与缺失服务实例相对应的替代服务实例,并利用替代服务实例确定出目标服务访问链表,即预先确定出能够替代缺失服务实例的替代服务实例,并利用替代服务实例代替缺失服务实例生成对应的目标服务访问链表。
可见,按照本实施例的方法,当目标服务中存在缺失服务实例导致无法生成对应的目标服务访问链表时,可以利用替代服务实例代替缺失服务实例生成对应的目标服务访问链表,避免了对象访问请求不可达的情况,进一步提高服务访问的准确度和效率。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,图3为本发明实施例提供的再一种微服务架构中的服务访问方法的流程图。如图3所示,一种微服务架构中的服务访问方法中S20:从注册中心获取所有服务实例,并根据所有服务实例中的各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表的过程,具体包括:
S21:从注册中心获取所有服务实例;
S22:分别判断所有服务实例中的各服务实例是否预先设置有策略配置参数;若是,则调用S23;若否,则调用S24;
S23:获取策略配置参数;
S24:按照预设规则为服务实例设置对应的策略配置参数;
S25:根据各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表。
具体的,在本实施例中,首先从注册中心获取所有服务实例,该所有服务实例对应为服务实例列表;然后分别判断所有服务实例中的各服务实例是否预先设置有策略配置参数;即判断服务实例列表中的各服务实例是否预先设置有策略配置参数;若是,则直接获取该服务实例的策略配置参数;否则,则需要按照预设规则为该服务实例设置对应的策略配置参数;进而根据各服务实例的策略配置参数将各服务实例分组,从而得到分组服务实例列表。
需要说明的是,在本实施例中,可以是预先设置默认策略配置参数,当需要按照预设规则为预先没有设置策略配置参数的服务实例设置对应的策略配置参数时,则直接利用该默认策略配置参数为对应的服务实例设置策略配置参数。
作为一种优选的实施方式,策略配置参数具体包括:组、环境和版本。
需要说明的是,组包括cunw组,环境包括normal环境和gray环境,版本指的是服务实例对应的版本号;在实际操作中,可以通过配置中心来动态修改某服务实例的策略配置参数,以便能够灵活调整各服务实例的策略配置参数。
可见,本发明实施例进一步考虑到注册中心的服务实例可能没有预先设置策略配置参数的情况,因此本发明实施例通过按照预设规则为服务实例设置对应的策略配置参数,以便能够对各服务实例进行分组,从而全面完整地得出分组服务实例列表。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,当接收到对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,进一步包括:
发出对应的第二提示信息。
具体的,在本实施例中,是在接收到对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,进一步触发预设的提示装置发出对应的第二提示信息。
需要说明的是,第一提示信息和第二提示信息可以是由同一提示装置发出的不同的提示信息,即在实际操作中,可以将提示装置的不同工作状态对应设置为不同的提示信息,利用不同的提示信息对不同的情况进行提醒。例如,可以将指示灯的闪烁与长亮分别设置为第一提示信息和第二提示信息,也可以将蜂鸣器的长鸣与短鸣分别设置为第一提示信息和第二提示信息,本实施例对此不做具体的限定,按照本实施例提供的方法,能够在对多种不同的情况进行提示的基础上,相对减少提示装置的数量。
在上述实施例的基础上,本实施例对技术方案作了进一步的说明和优化,具体的,本实施例中,当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表的过程,具体包括:
当接收到对象访问请求时,确定出与对象访问请求对应的目标服务的请求服务名称;
根据请求服务名称确定出注册中心中与请求服务名称对应的名称服务实例列表;
根据对象访问请求的目标用户的用户身份的策略配置参数和名称服务实例列表确定请求服务实例列表。
具体的,在本实施例中,当接收到对象访问请求时,首先确定出与对象访问请求对应的目标服务的请求服务名称;请求服务名称即用于标识对应的目标服务的信息,因此请求服务名称也可是其他类型的标识信息,本实施例对此不做限定;然后从注册中心中的所有服务实例中确定出与请求服务名称对应的名称服务实例列表,即名称服务实例列表中的各服务实例的名称与请求服务名称相同;再根据对象访问请求的目标用户的用户身份的策略配置参数和名称服务实例列表的对应关系确定出请求服务实例列表,也就是说,从各名称服务实例列表中确定出与当前的对象访问请求的目标用户的用户身份的策略配置参数相对应的请求服务实例列表。
可见,按照本实施例的方法,能够更加全面完整地确定出请求服务实例列表。
上文对于本发明提供的一种微服务架构中的服务访问方法的实施例进行了详细的描述,本发明还提供了一种与该方法对应的微服务架构中的服务访问装置、设备及计算机可读存储介质,由于装置、设备及计算机可读存储介质部分的实施例与方法部分的实施例相互照应,因此装置、设备及计算机可读存储介质部分的实施例请参见方法部分的实施例的描述,这里暂不赘述。
图4为本发明实施例提供的一种微服务架构中的服务访问装置的结构图,如图4所示,一种微服务架构中的服务访问装置包括:
第一确定模块41,用于当接收到对象访问请求时,确定出与对象访问请求对应的请求服务实例列表;
分组模块42,从注册中心获取所有服务实例,并根据所有服务实例中的各服务实例的策略配置参数将各服务实例分组,得到分组服务实例列表;
第二确定模块43,用于根据各分组服务实例列表和请求服务实例列表的策略配置参数确定出目标服务访问链表;
设置模块44,用于将对象访问请求分发给目标服务访问链表中的各目标服务实例。
本发明实施例提供的微服务架构中的服务访问装置,具有上述微服务架构中的服务访问方法的有益效果。
作为优选的实施方式,一种微服务架构中的服务访问装置进一步包括:
第一提示模块,用于当对象访问请求所要访问的目标服务的各服务实例中不存在与请求服务实例对应的服务实例时,发出对应的第一提示信息。
作为优选的实施方式,一种微服务架构中的服务访问装置进一步包括:
第三确定模块,用于当接收到对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,确定出缺失服务实例;
第四确定模块,用于从目标服务的服务实例中确定出替代服务实例,并利用替代服务实例确定出目标服务访问链表。
作为优选的实施方式,一种微服务架构中的服务访问装置进一步包括:
第二提示模块,用于当接收到对象访问请求的次数达到预设次数且均未确定出对应的目标服务访问链表时,发出对应的第二提示信息。
图5为本发明实施例提供的一种微服务架构中的服务访问设备的结构图,如图5所示,一种微服务架构中的服务访问设备包括:
存储器51,用于存储计算机程序;
处理器52,用于执行计算机程序时实现如上述微服务架构中的服务访问方法的步骤。
本发明实施例提供的微服务架构中的服务访问设备,具有上述微服务架构中的服务访问方法的有益效果。
为解决上述技术问题,本发明还提供一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,计算机程序被处理器执行时实现如上述微服务架构中的服务访问方法的步骤。
本发明实施例提供的计算机可读存储介质,具有上述微服务架构中的服务访问方法的有益效果。
以上对本发明所提供的微服务架构中的服务访问方法、装置、设备及计算机可读存储介质进行了详细介绍。本文中应用了具体实施例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。
说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。