系统定制开发Ribbon负载均衡策略

系统定制开发负载均衡策略

Ribbon系统定制开发的策略是由 IRule 接口定义, 系统定制开发该接口由如下实现:
在jar包:com.netflix.ribbon#ribbon-loadbalancer中;

要使用ribbon系统定制开发实现负载均衡,在Spring 的配置类里面把对应的负载均衡接口实现类作为一个Bean配置一下就行了,即像下面这样:

/**     * 更改负载均衡策略,默认是ZoneAvoidanceRule策略     *     * @return     */    @Bean    public IRule iRule(){        return new NacosRule();    }
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9

负载均衡的入口:ILoadBalancer接口;

@Beanpublic IRule iRule(){    return new RoundRobinRule();}
  • 1
  • 2
  • 3
  • 4
负载均衡实现策略
RandomRule随机
RoundRobinRule轮询
AvailabilityFilteringRule先过滤掉由于多次访问故障的服务,以及并发连接数超过阈值的服务,然后对剩下的服务按照轮询策略进行访问
WeightedResponseTimeRule根据平均响应时间计算所有服务的权重,响 应时间越快服务权重就越大被选中的概率即 越高,如果服务刚启动时统计信息不足,则 使用RoundRobinRule策略,待统计信息足够会切换到该WeightedResponseTimeRule策略
RetryRule先按照RoundRobinRule策略分发,如果分发到的服务不能访问,则在指定时间内进行重试,然后分发其他可用的服务
BestAvailableRule先过滤掉由于多次访问故障的服务,然后选择一个并发量最小的服务
ZoneAvoidanceRule (默认)综合判断服务节点所在区域的性能和服务节点的可用性,来决定选择哪个服务

如果我们没有指定负载均衡策略,ribbon默认的负载均衡是ZoneAvoidanceRule,自定义负载均衡策略:

public class MyNacosRule extends AbstractLoadBalancerRule {    @Override    public void initWithNiwsConfig(IClientConfig clientConfig)    {//基本上不需要实现}    @Override    public Server choose(Object key) {//实现该方法}}
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8

配置文件配置负载均衡策略:(可以直接配置配置文件实现负载均衡)

远程服务名称.ribbon.NFLoadBalancerRuleClassName=com.bjpowernode.ribbon.MyNacosRule
  • 1
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发