1、创建cloud-provider-payment8002
image.png
仿照cloud-provider-payment8001创建cloud-provider-payment8002
2、服务提供者注册进Eureka集群
image.png
在cloud-provider-payment8001和cloud-provider-payment8002中分别将注册地址改成集群地址
eureka:
client:
register-with-eureka: true #表示是否将自己注册进EurekaServer默认为True
fetch-registry: true #是否愿意从Eureka抓取字的注册信息,默认为true.单节点无所谓,集群必须设置为true才能配合ribbon使用负载均衡
service-url:
defaultZone: http://eureka7001.com:7001/eureka,http://eureka7002.com:7002/eureka,http://eureka7003.com:7003/eureka
并且为了方便查看服务信息,用端口区分
image.png
在Controller里修改
@Value("${server.port}")
private String port;
@PostMapping("/payment/create")
public CommonResult create(@RequestBody Payment payment){
int result=paymentService.create(payment);
log.info("******插入结果"+result);
if(result>0){
return new CommonResult(200,"插入数据库成功,ServerPort"+port,result);
}else {
return new CommonResult(444,"插入数据库失败",null);
}
}
@GetMapping("/payment/get/{id}")
public CommonResult getPaymentById(@PathVariable("id")Long id){
payment=paymentService.getPaymentById(id);
log.info("******查询到的"+payment);
if(payment!=null){
return new CommonResult(200,"查询成功,ServerPort"+port,payment);
}else {
return new CommonResult(444,"没有对应记录,查询ID"+id,null);
}
}
3、消费者向集群注册中心拿服务
此时8001和8002组成了服务提供者集群
因此拿服务的地址应该改成服务提供者注册到Eureka的名称
image.png
image.png
public static final String PAYMENT_URL="http://CLOUD-PAYMENT-SERVICE";
4、开启负载均衡
开启RestTemplate的负载均衡特别简单
image.png
在Config上加上
@LoadBalanced
注解即可
5、启动Eureka集群,启动服务提供者集群,启动80消费者。
在Eureka的面板上能看见所有信息
image.png
并且通过80消费端口去访问发现我们的集群也已经实现了简单的负载均衡的轮询
GIF.gif