app开发定制Ribbon负载均衡策略

文章目录

简介

Spring Cloud Ribbonapp开发定制是一个基于HTTP和TCPapp开发定制的客户端负载均衡工具,它基于 Ribbon实现。通过Spring Cloud的封装,app开发定制可以让我们轻松地将面向服务的RESTapp开发定制模版请求自动转换成客户端负载均衡的服务调用。

Ribbon原理


1、服务消费者发起请求
2、LoadBalancerInterceptor拦截器拦截请求
3、RibbonLoadBanlancerClient根据请求中的uri获取到服务提供者的id
4、通过DynamicServerListLoadBalancer根据id从eureka服务端拉去服务列表
5、通过Ribbon负载均衡规则选择某个服务

Ribbon的负载均衡规则是通过IRule的接口来定义的,其每个实现类都是一种规则

内置负载均衡规则类描述
RoundRobinRule简单轮询服务列表来选择服务器。它是Ribbon默认的负载均衡规则。
AvailabilityFilteringRule对以下两种服务器进行忽略
WeightedResponseTimeRule为每一个服务器赋予一个权重值。服务器响应时间越长,这个服务器的权重就越小。这个权重值会影响服务器的选择。
ZoneAvoidanceRule以区域可用的服务器为基础进行服务器的选择。使用Zone对服务器进行分类,而后再对Zone内的多个服务做轮询。
BestAvailableRule忽略那些短路的服务器,并选择并发数较低的服务器。
RandomRule随机选择一个可用的服务器。
RetryRule重试机制的选择逻辑

修改Ribbon负载均衡策略

第一种方式

在配置类中定义IRule的实现类

@Bean    public IRule randomRule(){        return new RandomRule();    }
  • 1
  • 2
  • 3
  • 4

第二种方式

在配置文件application.yml文件中配置

userservice:  ribbon:    #负载均衡规则    NFLoadBalancerRuleClassName: com.netflix.loadbalancer.RandomRule
  • 1
  • 2
  • 3
  • 4

饥饿加载

Ribbon默认是采用懒加载,即第一次访问时才会去创建LoadBalanceClient,请求时间会很长。而饥饿加载则会在项目启动时创建,降低第一次访问的耗时

userservice:  ribbon:    eager-load:      #开启饥饿加载      enabled: true      #指定对多个服务饥饿加载      clients:         - userservice         - yyyyservice        - xxxxservice
  • 1
  • 2
  • 3
  • 4
  • 5
  • 6
  • 7
  • 8
  • 9
  • 10
网站建设定制开发 软件系统开发定制 定制软件开发 软件开发定制 定制app开发 app开发定制 app开发定制公司 电商商城定制开发 定制小程序开发 定制开发小程序 客户管理系统开发定制 定制网站 定制开发 crm开发定制 开发公司 小程序开发定制 定制软件 收款定制开发 企业网站定制开发 定制化开发 android系统定制开发 定制小程序开发费用 定制设计 专注app软件定制开发 软件开发定制定制 知名网站建设定制 软件定制开发供应商 应用系统定制开发 软件系统定制开发 企业管理系统定制开发 系统定制开发