一种基于实时负载率的远程服务调用负载均衡系统技术方案

技术编号:14685723 阅读:77 留言:0更新日期:2017-02-22 20:11
本发明专利技术公开了一种基于实时负载率的远程服务调用负载均衡系统,包括监控中心、注册中心、客户端和服务端;所述监控中心用于状态监控和统计服务连接数,并向注册中心定时上报;所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级;所述客户端包括负载均衡器模块,所述负载均衡器模块用于分析服务实例负载等级,根据负载均衡筛选算法筛选出服务实例,并推荐给客户端。

【技术实现步骤摘要】

本专利技术属于信息系统领域,尤其涉及一种基于实时负载率的远程服务调用负载均衡系统
技术介绍
随着信息系统的发展,应用规模日趋庞大,不同应用间的交互不断增多,传统信息系统存在大量重复的共性业务逻辑,大大降低了系统的可靠性、可维护性与可定制性。目前,采取将核心业务抽取出来成为服务,划分原有复杂的应用,以模块形式独立部署,能够实现服务的共享与重用。然而当服务数量不断增多,服务间依赖关系变的复杂,简单暴露与引用远程服务无法满足用户需求。传统的远程服务调用过程中,客户端直接配置远程服务地址进行服务访问,大量服务交互使得服务地址的配置管理十分困难。在集群环境中,为保证服务调用的可靠性,多采用多服务实例部署。即单个服务包含多个可用的服务实例,防止单个服务实例出现异常的情况下,仍能维持服务的正常访问。在多实例场景中,如何选择服务实例进行连接成为服务交互中不可避免的问题。随机负载均衡算法,采用随机的方式发放客户端请求;轮询负载均衡算法,采用遍历服务实例列表的方式发放客户端请求。以上算法不具有一定的动态性,未能考虑服务的实时负载情况,并且不支持用户自定义的负载策略配置。
技术实现思路
专利技术目的:本专利技术针对目前信息系统中远程服务调用过程中存在的服务寻址不透明、服务负载不均问题,从服务实时负载率角度,提出一种基于实时负载率的远程服务调用负载均衡系统,包括监控中心、注册中心、客户端和服务端,所述监控中心用于状态监控和统计服务连接数,并向注册中心定时上报;所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级;所述客户端包括负载均衡器模块,所述负载均衡器模块用于分析服务实例负载等级,根据负载均衡筛选算法筛选出服务实例,并推荐给客户端。所述服务端用于提供远程服务并向注册中心注册服务实例名称和访问地址等信息。所述监控中心用于状态监控和统计服务连接数,具体包括:监控中心分别接收服务端与客户端定时发送的心跳数据,根据心跳状态判断当前客户端与服务端的连接情况,将服务实例的新增、变更、异常、断开信息实时推送给在线的客户端;监控中心实时统计当前服务实例所对应的客户端连接数信息,并向注册中心推送实例连接数更新列表;监控中心提供可配置的监控周期设置,用户根据系统需求,定制监控统计频率。所述注册中心作为负载均衡架构服务发布与服务订阅中心,分别向服务端与客户端提供服务自动注册与订阅功能。同时,注册中心内置服务实例负载等级划分器,接收由监控中心推送的服务实例当前连接数信息,并计算实时的服务实例负载率。所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级,具体包括:启动服务实例时,服务实例自动向注册中心发送注册信息,包括服务实例访问地址、服务实例名称、服务实例支持最大连接数MAX信息,注册中心接收注册信息并进行持久化,同时通知客户端;注册中心获取服务实例连接数信息,计算服务负载率情况,实时将服务实例负载等级变动列表推送给客户端;注册中心提供负载等级划分算法,根据等级划分标准,以级别数代替具体连接数字,表示服务实例当前负载率,同时屏蔽小范围连接数频繁上下波动导致的级别数更新,避免大量负载等级变更信息发送所导致的资源浪费;当客户端启动时,向注册中心发送服务连接请求,注册中心接收服务连接请求,查询当前服务下可用服务实例列表向客户端推送,可用服务实例列表包括服务实例地址及其负载等级信息;注册中心支持自定义的负载等级划分标准配置;注册中心支持自定义的波动屏蔽范围配置。所述注册中心包括负载等级划分模块,负载等级划分模块提供负载等级划分算法,计算服务实例当前负载率(LoadFactor,LF),并将负载率转化为相应负载等级(LoadLevel,LL)以可量化的方式表示当前服务负载状态。服务实例当前负载率LF的计算方式为:当前连接服务实例的客户端数量(ClientNumber,CN)与服务实例配置的最大连接数MAX之间的比值,通过如下公式计算负载等级LL:所述负载等级划分模块提供可配置的负载等级划分标准,支持用户自定义的划分方式:负载等级划分模块提供划分标准的可配置文件,用户通过修改文件中包括等级数等配置项,生成自定义负载等级划分标准。为避免连接服务实例的客户端数量在等级边界值上下波动导致负载等级在连续两个区间之间不断转换,并推送大量负载等级变更信息,所述负载等级划分模块对指定范围的连接服务实例的客户端数量变化采用屏蔽处理,方法如下:通过如下公式计算变动率CR(ChangeRate,CR):其中CN’表示前次统计得到的连接服务实例的客户端数量。将变动率CR与设置的最小变动率MIN_CR(MinimalChangeRate,MIN_CR)进行比较,若CR≤MIN_CR,判定此次负载变动较小,屏蔽此次变动;若CR>MIN_CR,判定此次负载变动有效,计算负载均衡等级,并向负载均衡器模块推送服务实例新的负载等级值。与负载等级划分标准相同,除了默认提供的MIN_CR值(0.1),架构支持可配置的MIN_CR值设置,用户可根据服务实例的实际负载状况进行配置。负载率越高,负载等级越高,服务实例当前负载越大。默认的负载等级由高到低分包括1级、2级、3级、4级、5级。默认的负载等级划分标准为:负载率在20%以内(包括20%),相应负载等级为5(LOW);负载率在20%以上,40%以内(包括40%),相应负载等级为4;负载率在40%以上,60%以内(包括60%),相应负载等级为3;负载率在60%以上,80%以内(包括80%),相应负载等级为2;负载率在80%以上,相应负载等级为1(HIGH)。所述负载均衡器模块为远程服务调用架构提供可定制化的负载均衡策略,从可用服务实例列表中筛选出服务实例向客户端推荐。所述负载均衡器模块用于分析服务实例负载等级,根据负载均衡筛选算法筛选出服务实例,并推荐给客户端,具体包括:负载均衡器模块维护服务实例信息缓存,保证服务实例信息实时准确性,在注册中心故障中,仍能通过本地缓存实现服务调用;负载均衡器模块提供基于服务实例负载均衡等级的负载均衡筛选算法,根据服务实例实时的负载率,分配客户端调用请求;负载均衡器模块对于连接数等级最低的服务实例,始终推荐,减少重复的计算导致的客户端连接请求响应效率降低;负载均衡器模块对不含有最高或最低负载等级服务实例集合,计算所有服务实例等级之和,按照负载等级高被选中概率低,负载等级低被选中概率高的算法,均衡化服务实例负载,从可用服务实例列表中筛选出服务实例,并向客户端推荐连接。所述负载均衡筛选算法包括如下步骤:步骤1,一个服务包含一个服务实例的集合I={i0,i1,i2,...,iq本文档来自技高网...
一种基于实时负载率的远程服务调用负载均衡系统

【技术保护点】
一种基于实时负载率的远程服务调用负载均衡系统,其特征在于,包括监控中心、注册中心、客户端和服务端;所述监控中心用于状态监控和统计服务连接数,并向注册中心定时上报;所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级;所述客户端包括负载均衡器模块,所述负载均衡器模块用于分析服务实例负载等级,根据负载均衡筛选算法筛选出服务实例,并推荐给客户端;所述服务端用于提供远程服务并向注册中心注册服务实例名称和访问地址。

【技术特征摘要】
1.一种基于实时负载率的远程服务调用负载均衡系统,其特征在于,包括监控中心、注册中心、客户端和服务端;所述监控中心用于状态监控和统计服务连接数,并向注册中心定时上报;所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级;所述客户端包括负载均衡器模块,所述负载均衡器模块用于分析服务实例负载等级,根据负载均衡筛选算法筛选出服务实例,并推荐给客户端;所述服务端用于提供远程服务并向注册中心注册服务实例名称和访问地址。2.根据权利要求1所述的系统,其特征在于,所述监控中心用于状态监控和统计服务连接数,具体包括:监控中心分别接收服务端与客户端定时发送的心跳数据,根据心跳状态判断当前客户端与服务端的连接情况,将服务实例的新增、变更、异常、断开信息实时推送给在线的客户端;监控中心实时统计当前服务实例所对应的客户端连接数信息,并向注册中心推送实例连接数更新列表;监控中心提供可配置的监控周期设置,用户根据系统需求,定制监控统计频率。3.根据权利要求1所述的系统,其特征在于,所述注册中心用于提供服务发布与服务订阅,向客户端推送可用服务实例列表,并实时获取服务负载数量,计算服务实例负载等级,具体包括:启动服务实例时,服务实例自动向注册中心发送注册信息,包括服务实例访问地址、服务实例名称、服务实例支持最大连接数MAX信息,注册中心接收注册信息并进行持久化,同时通知客户端;注册中心获取服务实例连接数信息,计算服务负载率情况,实时将服务实例负载等级变动列表推送给客户端;注册中心提供负载等级划分算法,根据等级划分标准,以级别数代替具体连接数字,表示服务实例当前负载率,同时屏蔽小范围连接数频繁上下波动导致的级别数更新;当客户端启动时,向注册中心发送服务连接请求,注册中心接收服务连接请求,查询当前服务下可用服务实例列表向客户端推送,可用服务实例列表包括服务实例地址及其负载等级信息。4.根据权利要求3所述的系统,其特征在于,所述注册中心包括负载等级划分模块,负载等级划分模块提供负载等级划分算法,计算服务实例当前负载率LF,并将负载率转化为相应负载等级LL,以可量化的方式表示当前服务负载状态。5.根据权利要求...

【专利技术属性】
技术研发人员:丁乙李荣宽杨旸汪敏朱勇徐文聪
申请(专利权)人:中国电子科技集团公司第二十八研究所
类型:发明
国别省市:江苏;32

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

1