本申请公开了一种微服务单元化路由的实现方法,包括:部署微服务实例,为微服务实例打上路由元数据;根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中;从用户请求中获取用户标识,根据所述用户标识从所述统一业务配置中心查询对应于所述用户请求的单元化路由规则,将对应于所述用户请求的单元化路由规则加入到所述用户请求中,得到加入所述单元化路由规则的用户请求信息;根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例。本申请的方法能够面向不同用户选择不同的目标微服务实例实现微服务单元化路由,伸缩时无需启停现有微服务;路由规则的配置项能做到简单、动态、集中配置并能可视化管理。视化管理。视化管理。
【技术实现步骤摘要】
微服务单元化路由的实现方法
[0001]本申请涉及云服务
,具体涉及一种微服务单元化路由的实现方法。
技术介绍
[0002]SpringCloud微服务架构体系内,微服务A调用微服务B时一般是通过客户端负载均衡器Ribbon,从注册中心Eureka中获取到的微服务B的可用实例列表中选择一个目标实例来转发请求的,不能基于用户标识等业务参数定向选择。如图1所示,来自用户甲、用户乙和其它用户的请求到达ServiceA后,被无差别的转发到后端ServiceB实例上,不能按照用户选择不同的实例。服务ServiceA可以是一个边界服务也可以是一个服务网关。现在亟待解决的问题是如何面向不同用户选择不同的目标微服务实例实现微服务单元化路由。
技术实现思路
[0003]本申请的目的是提供一种。为了对披露的实施例的一些方面有一个基本的理解,下面给出了简单的概括。该概括部分不是泛泛评述,也不是要确定关键/重要组成元素或描绘这些实施例的保护范围。其唯一目的是用简单的形式呈现一些概念,以此作为后面的详细说明的序言。
[0004]根据本申请实施例的一个方面,提供一种1.一种微服务单元化路由的实现方法,其特征在于,包括:
[0005]部署微服务实例,为所述微服务实例打上路由元数据;
[0006]根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中;
[0007]从用户请求中获取用户标识,根据所述用户标识从所述统一业务配置中心查询对应于所述用户请求的单元化路由规则,将对应于所述用户请求的单元化路由规则加入到所述用户请求中,得到加入所述单元化路由规则的用户请求信息;
[0008]根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例。
[0009]进一步地,所述部署微服务实例,为所述微服务实例打上路由元数据,包括:
[0010]微服务发版时,将路由元数据打标到微服务实例上;其中,打标的方法设置在应用配置文件中,或者由运维发版平台在服务启动时加上元数据参数来进行设置。
[0011]进一步地,所述路由元数据的格式是routeunit=gray,其中routeunit是所述路由元数据的key,gray是所述路由元数据的值。
[0012]进一步地,所述根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中,包括:
[0013]使用用户ID或者开发者账号作为用户唯一标识,使用路由元数据为用户期望的微服务单元化路由目标。
[0014]进一步地,所述根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例,包括:
[0015]从eureka注册中心获得服务实例列表信息;所述服务实例列表信息中包含对应服
务实例上的路由元数据信息;
[0016]根据单元化路由规则,将满足单元化路由要求的服务实例过滤出来,形成可用实例列表;
[0017]选择一个实例作为目标微服务实例用于转发api请求;
[0018]转发api请求到目标微服务实例的同时,在所述api请求中加入路由元数据信息。
[0019]根据本申请实施例的另一个方面,提供一种微服务单元化路由的实现装置,包括:
[0020]部署模块,用于部署微服务实例,为所述微服务实例打上路由元数据;
[0021]配置模块,用于根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中;
[0022]查询加入模块,用于从用户请求中获取用户标识,根据所述用户标识从所述统一业务配置中心查询对应于所述用户请求的单元化路由规则,将对应于所述用户请求的单元化路由规则加入到所述用户请求中,得到加入所述单元化路由规则的用户请求信息;
[0023]选择模块,用于根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例。。
[0024]根据本申请实施例的另一个方面,提供一种电子设备,包括存储器、处理器及存储在所述存储器上并可在所述处理器上运行的计算机程序,所述处理器执行所述程序,以实现上述的微服务单元化路由的实现方法。
[0025]根据本申请实施例的另一个方面,提供一种计算机可读存储介质,其上存储有计算机程序,该程序被处理器执行,以实现上述的微服务单元化路由的实现方法。
[0026]本申请实施例的其中一个方面提供的技术方案可以包括以下有益效果:
[0027]本申请实施例提供的微服务单元化路由的实现方法,能够面向不同用户选择不同的目标微服务实例实现微服务单元化路由,伸缩时无需启停现有微服务;路由规则的配置项能做到简单、动态、集中配置并能可视化管理;动态增减微服务实例个数无须修改或启停运行中的微服务系统;路由标记能够动态增减,能够很好地满足实际应用的需要。
[0028]本申请的其他特征和优点将在随后的说明书中阐述,并且,部分地从说明书中变得显而易见,或者,部分特征和优点可以从说明书中推知或毫无疑义地确定,或者通过实施本申请实施例了解。本申请的目的和其他优点可通过在所写的说明书、以及附图中所特别指出的结构来实现和获得。
附图说明
[0029]为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请中记载的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0030]图1示出了现有技术的非单元化路由情况下微服务实例间在被选择时无差别的示意图;
[0031]图2示出了单元化路由情况下按照用户身份选择合适的微服务实例的示意图;
[0032]图3示出了本申请一个实施例的微服务单元化路由的实现系统的结构示意图;
[0033]图4示出了本申请一个实施例的微服务单元化路由的实现方法流程图;
[0034]图5示出了本申请一个实施例中的服务治理薄层的功能实现示意图;
[0035]图6示出了本申请一个实施例中的单元化路由规则和路由标识串起了用户和微服务实例的示意图。
具体实施方式
[0036]为了使本申请的目的、技术方案及优点更加清楚明白,下面结合附图和具体实施例对本申请做进一步说明。应当理解,此处所描述的具体实施例仅用以解释本申请,并不用于限定本申请。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
[0037]本
技术人员可以理解,除非另外定义,这里使用的所有术语(包括技术术语和科学术语),具有与本申请所属领域中的普通技术人员的一般理解相同的意义。还应该理解的是,诸如通用字典中定义的那些术语,应该被理解为具有与现有技术的上下文中的意义一致的意义,并且除非像这里一样被特定定义,否则不会用理想化或过于正式的含义来解释。
[0038]微服务架构下,用户在直观可见的各种云服务上发起的一个操作,背后往往会触发数以百计的微服务实本文档来自技高网...
【技术保护点】
【技术特征摘要】
1.一种微服务单元化路由的实现方法,其特征在于,包括:部署微服务实例,为所述微服务实例打上路由元数据;根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中;从用户请求中获取用户标识,根据所述用户标识从所述统一业务配置中心查询对应于所述用户请求的单元化路由规则,将对应于所述用户请求的单元化路由规则加入到所述用户请求中,得到加入所述单元化路由规则的用户请求信息;根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例。2.根据权利要求1所述的方法,其特征在于,所述部署微服务实例,为所述微服务实例打上路由元数据,包括:微服务发版时,将路由元数据打标到微服务实例上;其中,打标的方法设置在应用配置文件中,或者由运维发版平台在服务启动时加上元数据参数来进行设置。3.根据权利要求2所述的方法,其特征在于,所述路由元数据的格式是routeunit=gray,其中routeunit是所述路由元数据的key,gray是所述路由元数据的值。4.根据权利要求1所述的方法,其特征在于,所述根据业务需要将对应于各用户的单元化路由规则配置到统一业务配置中心中,包括:使用用户ID或者开发者账号作为用户唯一标识,使用路由元数据为用户期望的微服务单元化路由目标。5.根据权利要求1所述的方法,其特征在于,所述根据所述加入所述单元化路由规则的用户请求信息选择目标微服务实例...
【专利技术属性】
技术研发人员:陈杰,杨正道,周国库,
申请(专利权)人:百望股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。