开始吧
负载均衡:请求会被分配到集群服务的不同服务地址(简单理解)
改造调用服务者
1、 凭啥改造
因为RestTemplate调用服务的时候我们之前是写死的,起不到负载均衡的作用
public static final String PAYMENT_URL= "http://localhost:8001";
改造
public static final String PAYMENT_URL= "http://CLOUD-PAYMENT-SERVICE"; //改成调用服务在注册中心的键名,会映射到相应的服务地址的值。
2、 改造完以后同样负载均衡不起作用
原因:只映射到地址的第一个值
解决:配置类上使用@LoadBalanced注解赋予RestTemplate负载均衡的能力
@Configuration
public class ApplicationContextConfig {
@Bean
@LoadBalanced //赋予RestTemplate负载均衡的能力
public RestTemplate getRestTemplate(){
return new RestTemplate();
}
}
3、 负载均衡测试成功
负载均衡没有成功,todo。调用支付服务没能返回数据
原因是:准备拼接的字符串没有加上Http协议!
public static final String PAYMENT_URL= "http://CLOUD-PAYMENT-SERVICE"; //改成调用服务在注册中心的键名,会映射到相应的服务地址的值。