专栏名称: 一起成为全栈工程师
一起成为全栈工程师吧
目录
相关文章推荐
什么值得买  ·  618好价|电信卡月租1分钱;OPPO ... ·  2 小时前  
社会主义羊毛  ·  惠 | 大山白年费不愁,618正好叠加 ·  20 小时前  
小钱大玩TravelWithLess  ·  新手入门|美国信用卡必须掌握的关键词与玩法全解析 ·  2 天前  
51好读  ›  专栏  ›  一起成为全栈工程师

SpringCloud微服务之客户端负载均衡Ribbon

一起成为全栈工程师  · 简书  ·  · 2019-08-07 21:16

正文

请到「今天看啥」查看全文


Ribbon是什么

Ribbon是Netflix发布的开源项目,主要功能是提供客户端的软件负载均衡算法,将Netflix的中间层服务连接在一起。Ribbon客户端组件提供一系列完善的配置项如连接超时,重试等

Ribbon怎么使用
  • 添加依赖
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
</dependency>
<dependency>
    <groupId>org.springframework.cloud</groupId>
    <artifactId>spring-cloud-starter-netflix-ribbon</artifactId>
</dependency>
  • application.yml配置
eureka:
  client:
    service-url:
      defaultZone: http://localhost:8761/eureka/
ribbon:
    MaxAutoRetries: 2 #最大重试次数,当Eureka中可以找到服务,但是服务连不上时将会重试 MaxAutoRetriesNextServer: 3 #切换实例的重试次数
    OkToRetryOnAllOperations: false #对所有操作请求都进行重试,如果是get则可以,如果是post,put等操作
    没有实现幂等的情况下是很危险的,所以设置为false ConnectTimeout: 5000 #请求连接的超时时间 ReadTimeout: 6000 #请求处理的超时时间
spring:
  application:
    name: eureka-ribbon-client
server:
  port: 8764
  • RestTemplate配置类
@Configuration
public class RibbonConfig {

    @Bean
    @LoadBalanced
    RestTemplate restTemplate(){
        return new RestTemplate();
    }
}
  • 在Service层调用其他微服务
@Service
public class RibbonService {
    @Autowired
    RestTemplate restTemplate;

    public String hi(String name){
        return restTemplate.getForObject("http://eureka-client/hi?name="+name, String.class);
    }
}
  • Springboot项目启动类开启Ribbon(其实就是一个Eureka客户端)
@SpringBootApplication
@EnableEurekaClient
public class EurekaRibbonClientApplication {
    public static void main(String[] args) {
        SpringApplication.run(EurekaRibbonClientApplication.class, args);
    }
}

到这里就可以使用了,有什么问题请留言, 会在第一时间回复!!!







请到「今天看啥」查看全文