服务网格、服务请求方法及边车代理技术

技术编号:37717098 阅读:12 留言:0更新日期:2023-06-02 00:13
本申请涉及微服务处理技术领域,提供一种服务网格、服务请求方法和边车代理,可以避免边车代理的内存被过多地占用。其中,边车代理开启按需加载,流量管理单元不将全部服务的服务发现信息发给边车代理;兜底代理未开启按需加载,流量管理单元将全部服务的服务发现信息发给兜底代理;边车代理接收到针对被调服务的首次请求时,边车代理将首次请求转给兜底代理;兜底代理基于流量管理单元发送的全部服务的服务发现信息,将首次请求路由至被调服务;边车代理存储从流量管理单元请求到的被调服务的服务发现信息;边车代理接收到针对被调服务的再次请求时,边车代理基于所存的被调服务的服务发现信息,将再次请求直接路由至被调服务。务。务。

【技术实现步骤摘要】
服务网格、服务请求方法及边车代理


[0001]本申请涉及微服务处理
,特别是涉及一种服务网格。

技术介绍

[0002]为了让服务的开发人员专注于服务特有的业务逻辑的开发,服务网格(Service Mesh)应运而生,通用的安全逻辑、通信逻辑被抽离到服务网格中,服务之间可以基于服务网格进行请求交互。
[0003]服务网格包括控制面和数据面,数据面的边车代理被以边车(sidecar)形式部署在服务旁边,控制面的流量管理单元主要用于监听全部服务的服务发现信息并下发给边车代理。
[0004]当某一服务(可以称为主调服务)请求其他服务(可以称为被调服务)时,主调服务的边车代理基于流量管理单元下发的全部服务的服务发现信息,可以将请求转到上述被调服务的边车代理,进而给到上述被调服务。但是,随着服务增多,全部服务的服务发现信息,极大地占用了边车代理的内存。

技术实现思路

[0005]基于此,有必要针对上述技术问题,提供一种服务网格、服务请求方法、边车代理和兜底代理,以避免边车代理的内存被过多地占用。
[0006]本申请提供的服务网格包括:控制面的流量管理单元,边车代理,以及兜底代理;
[0007]其中,所述边车代理开启按需加载,所述流量管理单元不将全部服务的服务发现信息发给所述边车代理;所述兜底代理未开启按需加载,所述流量管理单元将全部服务的服务发现信息发给所述兜底代理;
[0008]所述边车代理接收到针对被调服务的首次请求时,所述边车代理将所述首次请求转给所述兜底代理;
[0009]所述兜底代理基于所述流量管理单元发送的全部服务的服务发现信息,将所述首次请求路由至所述被调服务;
[0010]所述边车代理存储从所述流量管理单元请求到的所述被调服务的服务发现信息;
[0011]所述边车代理接收到针对所述被调服务的再次请求时,所述边车代理基于自身存储的所述被调服务的服务发现信息,将所述再次请求直接路由至所述被调服务。
[0012]本申请还提供一种服务请求方法,所述方法可以应用于所述边车代理,所述方法包括:
[0013]接收到针对被调服务的首次请求时,将所述首次请求转给兜底代理,以使所述兜底代理执行如下步骤:基于流量管理单元发送的全部服务的服务发现信息,将所述首次请求路由至所述被调服务;
[0014]存储从所述流量管理单元请求到的所述被调服务的服务发现信息;
[0015]接收到针对所述被调服务的再次请求时,基于自身存储的所述被调服务的服务发
现信息,将所述再次请求直接路由至所述被调服务;
[0016]其中,所述边车代理开启按需加载,所述流量管理单元不将全部服务的服务发现信息发给所述边车代理;所述兜底代理未开启按需加载,所述流量管理单元将全部服务的服务发现信息发给所述兜底代理。
[0017]本申请还提供一种边车代理,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
[0018]本申请还提供一种服务请求方法,所述方法可以应用于兜底代理,所述方法包括:
[0019]在边车代理接收到针对被调服务的首次请求的情况下,接收所述边车代理发送的首次请求;
[0020]基于所述流量管理单元发送的全部服务的服务发现信息,将所述首次请求路由至所述被调服务。
[0021]本申请还提供一种兜底代理,包括存储器和处理器,所述存储器存储有计算机程序,所述处理器执行所述计算机程序时实现上述的方法。
[0022]本申请中,边车代理开启按需加载,流量管理单元不将全部服务的服务发现信息发给该边车代理,该边车代理无需存储全部服务的服务发现信息,避免内存被过多地占用,降低边车代理cpu所要处理的数据,减少cpu消耗;并且,流量管理单元无需将全部服务的服务发现信息下发给边车代理,可以节约网络带宽,降低网络耗时;在边车代理开启按需加载的情况下,为了避免该边车代理开启按需加载影响主调服务进行服务请求,保证主调服务可以正常地请求到被调服务,本申请中,当边车代理接收到针对被调服务的首次请求时,将首次请求转给兜底代理,由于兜底代理未开启按需加载,存储着全部服务的服务发现信息,因此,上述首次请求可以被兜底代理转给被调服务,保证发起上述首次请求的主调服务正常地请求到被调服务;另外,边车代理会向控制面的流量管理单元请求被调服务的服务发现信息并存储,边车代理接收到针对被调服务的再次请求时,边车代理可以根据自身存储的被调服务的服务发现信息,直接将再次请求路由至被调服务,无需借助兜底代理,提高请求效率。
附图说明
[0023]图1为一个实施例中服务网格的架构示意图;
[0024]图2为另一个实施例中服务网格的架构示意图;
[0025]图3(a)为一个实施例中兜底代理侧的流程示意图;
[0026]图3(b)为一个实施例中流量管理单元侧的流程示意图;
[0027]图4(a)为一个实施例中边车代理侧的流程示意图;
[0028]图4(b)为另一个实施例中流量管理单元侧的流程示意图;
[0029]图5(a)至图5(f)为使用本申请提供的服务网格的效果比对图;
[0030]图6为一个实施例中计算机设备的内部结构图。
具体实施方式
[0031]为了使本申请的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本申请进行进一步详细说明。应当理解,此处描述的具体实施例仅仅用以解释本申请,并不
用于限定本申请。
[0032]在本申请中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本申请所描述的实施例可以与其它实施例相结合。
[0033]本申请提供的服务网格,包括图1示出的边车代理、流量管理单元、兜底代理。
[0034]边车代理为以边车形式部署在服务旁边的代理。流量管理单元属于控制面,主要是用于管理服务网格的流量规则等,流量管理单元可以监听部署在服务网格上的所有服务的服务发现信息。
[0035]以部署在服务网格的主调服务(可以记为svc1),被调服务(可以记为svc2)为例介绍服务发现信息:
[0036]当svc1请求svc2时,svc1的边车代理在流量管理单元下发的全部服务的服务发现信息中,确定svc2的服务发现信息,根据svc2的服务发现信息,将请求转到上述svc2的边车代理,使得请求给到svc2。
[0037]服务发现信息包括CDS(Cluster Discovery Service,集群发现服务)信息、EDS(Endpoint Discovery Service,实例发现服务)信息、LDS(Listener Discovery Service,监听器发现服务)信息以及RDS(Router D本文档来自技高网
...

【技术保护点】

【技术特征摘要】
1.一种服务网格,其特征在于,所述服务网格包括:控制面的流量管理单元,边车代理,以及兜底代理;其中,所述边车代理开启按需加载,所述流量管理单元不将全部服务的服务发现信息发给所述边车代理;所述兜底代理未开启按需加载,所述流量管理单元将全部服务的服务发现信息发给所述兜底代理;所述边车代理接收到针对被调服务的首次请求时,所述边车代理将所述首次请求转给所述兜底代理;所述兜底代理基于所述流量管理单元发送的全部服务的服务发现信息,将所述首次请求路由至所述被调服务;所述边车代理存储从所述流量管理单元请求到的所述被调服务的服务发现信息;所述边车代理接收到针对所述被调服务的再次请求时,所述边车代理基于自身存储的所述被调服务的服务发现信息,将所述再次请求直接路由至所述被调服务。2.根据权利要求1所述的服务网格,其特征在于,所述边车代理接收到针对被调服务的首次请求时,所述边车代理将所述首次请求转给所述兜底代理,包括:所述边车代理接收到针对被调服务的首次请求时,所述边车代理从配置信息里获取所述兜底代理的服务发现信息,并基于所述兜底代理的服务发现信息将所述首次请求转给所述兜底代理。3.根据权利要求1所述的服务网格,其特征在于,所述边车代理开启按需加载,所述流量管理单元不将全部服务的服务发现信息发给所述边车代理,包括:所述边车代理在第一发现请求的基础上,添加按需加载标签,当所述边车代理启动时,将添加按需加载标签的第一发现请求发给流量管理单元;所述第一发现请求为代理启动阶段所用的发现请求;所述流量管理单元从所述第一发现请求中解析出所述按需加载标签时,确定所述边车代理开启按需加载,不将全部服务的服务发现信息发给所述边车代理。4.根据权利要求1所述的服务网格,其特征在于,在所述边车代理存储从所述流量管理单元请求到的所述被调服务的服务发现信息之前,所述边车代理在第二发现请求里添加表征所述被调服务的参数,并将添加有所述参数的第二发现请求发给所述流量管理单元;所述第二发现请求为服务请求阶段所用的发现请求;所述流量管理单元从所述第二发现请求中解析出所述参数时,将所述被调服务的服务发现信息发给所述边车代理。5.根据权利要求4所述的服务网格,其特征在于,添加有所述参数的第二发现请求发给所述流量管...

【专利技术属性】
技术研发人员:何燕春方海腾刘潇李嘉峻王淼刘学
申请(专利权)人:腾讯音乐娱乐科技深圳有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1