使用Ribbon实现Eureka的负载均衡
本篇接于《SpringBoot:Eureka搭建注册中心》和《SpringBoot:Eureka创建服务消费者》。
pom文件
org.springframework.cloud
spring-cloud-starter-netflix-eureka-client
org.springframework.cloud
spring-cloud-starter-netflix-ribbon
org.springframework.boot
spring-boot-starter-web
org.springframework.boot
spring-boot-starter-actuator
Application
@SpringBootApplication
@EnableDiscoveryClient
public class RibbonConsumerApplication {@Bean
@LoadBalanced
public RestTemplate template() {
return new RestTemplate();
}
public static void main(String[] args) {
new SpringApplicationBuilder(RibbonConsumerApplication.class)
.web(WebApplicationType.SERVLET)
.run(args);
}
}
配置文件
eureka:
client:serviceUrl:
defaultZone: http://localhost:20000/eureka/
server:
port: 31000
spring:
application:name: ribbon-consumer
测试Controller
@RestController
public class Controller {@Autowired
private RestTemplate restTemplate;
@GetMapping("/sayHi")
public String sayHi() {
return restTemplate.getForObject(
"http://eureka-client/sayHi",
String.class);
}
}
我们EurekaServer,并在30001和30002两个端口上启动两个client,同时启动Ribbon
然后我们使用postman请求localhost:31000/sayHi
接口,可以看到多次请求,返回结果会This is 30001
和This is 30002
说明@LoadBalanced
注解已经生效了!
还没有评论,来说两句吧...