ribbon

pom

ribbon的依赖是包含在eureka-client中的

 <dependency>
            <groupId>org.springframework.boot</groupId>
            <artifactId>spring-boot-starter-web</artifactId>
        </dependency>
        <dependency>
            <groupId>org.springframework.cloud</groupId>
            <artifactId>spring-cloud-starter-netflix-eureka-client</artifactId>
        </dependency>

application.yml

server:
  port: 9001
spring:
  application:
    name: consumer
eureka:
  client:
    # 表示是否将自己注册进入EurekaServer默认为true
    register-with-eureka: true
    # 是否从EurekaServer抓取已有的注册信息,默认为true
    # 单节点不会有影响,集群环境必须设置为true才能配合ribbon使用负载均衡
    fetch-registry: true
    # 注册到的EurekaServer路径
    service-url:
      defaultZone: http://localhost:7001/eureka

restTemplate

使用LoadBalanced注解


@SpringBootApplication
@EnableEurekaClient
public class ConsumerApplication {

    public static void main(String[] args) {
        SpringApplication.run(ConsumerApplication.class, args);
    }

    @Bean
    @LoadBalanced //开启使用ribbon的RestTemplate,默认策略是轮询
    public RestTemplate getRestTemplate() {
        return new RestTemplate();
    }

}

使用

通过服务名调用,默认是轮询策略


@RestController
public class AppController {

    @Autowired
    private RestTemplate restTemplate;

    //通过微服务服务名调用
    private final String PREFIX = "http://PROVIDER";

    @GetMapping
    public List getAll() {
        return restTemplate.getForObject(PREFIX + "/empt", List.class);
    }

}
posted @ 2020-10-09 19:47  刃牙  阅读(117)  评论(0编辑  收藏  举报