springCloud ribbon均衡负载的配置及原理

ribbon:
    用于均衡负载分发请求。
    内部实现机制有多种,如:轮询,hash,随机数等 ribbon 默认使用轮询机制 循环调取不同的同一服务器的不同实例
    也可以在appliacion 中设置
配置:
  1、加依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
2、加注解
@LoadBalanced //内部实现是使用拦截器拦截请求在通过自身设置的机制实现
3、修改获取方式
//以下第二种方式  1、在启动器上增加  @LoadBalanced注解 2、直接编写服务名字即可
String url = "http://USER-SERVICE/user/"+ id;;
USER-SERVICE是 服务器名字

关于配置
user-service:
  ribbon:
    ConnectTimeout: 250 # Ribbon的连接超时时间
    ReadTimeout: 1000 # Ribbon的数据读取超时时间
    OkToRetryOnAllOperations: true # 是否对所有操作都进行重试
    MaxAutoRetriesNextServer: 1 # 切换实例的重试次数
    MaxAutoRetries: 1 # 对当前实例的重试次数

根据如上配置,当访问到某个服务超时后,它会再次尝试访问下一个服务实例,如果不行就再换一个实例,如果不行,则返回失败。切换次数取决于MaxAutoRetriesNextServer参数的值

https://files.cnblogs.com/files/lanSeGeDiao/springCloud-demo.zip 
以上是springCloud的DEMO例子 请自行复制路径到浏览器

转: https://www.cnblogs.com/lanSeGeDiao/p/10810165.html

原文地址:https://www.cnblogs.com/fps2tao/p/14025710.html