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