Ribbon
spring.io 官网的简介:
Ribbon is a client side load balancer which gives you a lot of control over the behaviour of HTTP and TCP clients.
自己的翻译:
Ribbon是一个用来负载均衡的客户端,对于http和tcp客户端行为,Ribbon能给与你很多的控制方式。
在给Ribbon设置熔断器Hystrix的时候发现熔断器不起作用。
代码如下:
1 package com.example.demo;
2
3 import org.springframework.boot.SpringApplication;
4 import org.springframework.boot.autoconfigure.SpringBootApplication;
5 import org.springframework.cloud.client.circuitbreaker.EnableCircuitBreaker;
6 import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
7 import org.springframework.cloud.client.loadbalancer.LoadBalanced;
8 import org.springframework.cloud.netflix.hystrix.EnableHystrix;
9 import org.springframework.context.annotation.Bean;
10 import org.springframework.web.client.RestTemplate;
11 /**
12 * 在工程的启动类中,通过 @EnableDiscoveryClient 向服务中心注册;
13 * 并且向程序的ioc注入一个bean: restTemplate;
14 * 并通过 @LoadBalanced 注解表明这个 restRemplate 开启负载均衡的功能。
15 *
16 *
17 * 熔断器的使用
18 * 在程序的启动类RibbonClientApplication 加 @EnableHystrix 注解开启Hystrix 不起作用
19 *
20 *
21 */
22 @SpringBootApplication
23 @EnableDiscoveryClient //.....
24 //@EnableHystrix //......//注解不起作用
25 @EnableCircuitBreaker //注解起作用,查看官方文档可知
26 public class RibbonClientApplication {
27
28 public static void main(String[] args) {
29 SpringApplication.run(RibbonClientApplication.class, args);
30 }
31
32 @LoadBalanced //......
33 @Bean
34 public RestTemplate restTemplate() {
35 return new RestTemplate();
36 }
37 }