使用ribbon实现负载均衡
接着上一节的代码
pom
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-ribbon</artifactId>
</dependency>
也通过@LoadBalanced注解表明这个restRemplate开启负载均衡的功能
ServiceOrderApplication启动类
@EnableEurekaClient
@SpringBootApplication
public class ServiceOrderApplication {
public static void main(String[] args) {
SpringApplication.run(ServiceOrderApplication.class, args);
}
@Bean
@LoadBalanced
RestTemplate restTemplate() {
return new RestTemplate();
}
}
更改service-member服务代码
为了能方便我们调用看清楚效果 修改一下service-member的controller代码,${server.port}获取到了启动的端口
MemberController
@RestController
public class MemberController {
@Value("${server.port}")
public String prot;
@GetMapping("/member")
public String member(){
return "我是会员服务,prot"+prot;
}
}
修改端口,启动两台服务
演示效果
可以看到两个服务注册成功并且端口不同,调用消费者Order服务来看下默认的负载均衡是怎样的
第一次调用
第二次调用
从两次端口变化 可以看出ribbon负载均衡默认是轮询策略
第二节地址:第二节