8、服务提供者和消费者注册进微服务以及服务提供者的集群搭建

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<Payment> 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

©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

友情链接更多精彩内容