【技术实现步骤摘要】
客户端负载均衡实现方法及装置
[0001]本专利技术涉及云计算
,尤其涉及一种客户端负载均衡实现方法及装置。
技术介绍
[0002]本部分旨在为权利要求书中陈述的本专利技术实施例提供背景或上下文。此处的描述不因为包括在本部分中就承认是现有技术。
[0003]现有主流的负载均衡方案根据其工作模式可分成两类:
[0004]一种是集中式的,即在服务的消费方和提供方之间使用独立的负载均衡设施(可以是硬件,如F5,也可以是软件,如nginx),由该设施负责把访问请求通过某种策略转发至服务的提供方;
[0005]另一种是进程内,也称之为客户端负载均衡,将LB逻辑集成到消费方,消费方从服务注册中心获知有哪些地址可用,然后自己再从这些地址中选择出一个合适的服务器。Spring cloud中负责做服务发现和路由的Ribbon就属于后者,它只是一个类库,集成于消费方进程,消费方通过它来获取到服务提供方的地址。
[0006]目前主流的客户端负载均衡实现,例如spring cloud的ribbon,所提供的这些 ...
【技术保护点】
【技术特征摘要】
1.一种客户端负载均衡实现方法,其特征在于,包括:在客户端侧获取第一服务实例列表和第二服务实例列表,所述第一服务实例列表用于存储后端的健康的服务实例,第二服务实例列表用于存储后端的故障的服务实例;对第一服务实例列表中的每个服务实例,计算该服务实例的健康度,在该服务实例的健康度小于健康度阈值时,确定该服务实例为故障的服务实例,将该服务实例从第一服务实例列表中剔除,并添加至第二服务实例列表;对第一服务实例列表中的每个服务实例,在该服务实例接收到请求后,在该服务实例上处理请求,若处理请求失败,将所述请求转发至服务实例列表中的其他服务实例上;对第二服务实例列表中的每个服务实例,获取该服务实例的恢复等待时间,若该服务实例的恢复等待时间超过预设恢复等待窗口,将该服务实例从第二服务实例列表中提出,并添加至第以服务实例列表中。2.如权利要求1所述的方法,其特征在于,计算该服务实例的健康度,包括:统计该服务实例在单位时间内请求的响应状态码的错误次数、请求的慢响应次数、和自定义错误码次数;根据该服务实例在单位时间内请求的响应状态码的错误次数及对应权重、请求的慢响应次数及对应权重、和自定义错误码次数及对应权重,计算该服务实例的健康度。3.如权利要求2所述的方法,其特征在于,在该服务实例上处理请求,包括:若请求的响应时间超过慢响应时间阈值,确定处理请求失败,将该服务实例的请求的慢响应次数加一;否则,确定处理请求成功。4.如权利要求1所述的方法,其特征在于,将该服务实例从第一服务实例列表中剔除,包括:确定预设服务实例剔除条件;若该服务实例剔除后,第一服务实例列表中服务实例的数量不符合预设服务实例保留条件,不对该服务实例进行剔除,否则,对该服务实例进行剔除。5.如权利要求4所述的方法,其特征在于,所述预设服务实例剔除条件包括最少服务实例保留比例或最少服务实例保留数量。6.一种客户端负载均衡实现装置,其特征在于,包括:服务实例获取模块,用于在客户端侧获取第一服务实例列表和第二服务实例列表,所述第一服务实例列表用于存储后端的健康的服务实例,第二服务实例列表用于存储后端的故障的服务实例;健康度计算模块,用于对第一服务实例列表...
【专利技术属性】
技术研发人员:张正园,
申请(专利权)人:中国建设银行股份有限公司,
类型:发明
国别省市:
还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。