2020SpringCloud学习年终总结——第四章-zookeeper

代码地址:https://github.com/AJ-Spade/cloud2020/tree/master

Zookeeper前置

Eureka(停更),Zookeeper,Consul,Nacos

  • Eureka挺更了!!! 现在SpringCloud整合Zookeeper,代替Eureka!
  • centos7中 zookeeper位置是/usr/local/services/zookeeper/zookeeper-3.4.9/bin
  • zookeeper IP ,即centos的ip 192.168.56.128 此时本机为172.20.10.8

版本说明

  • cloud Hoxton.SR1
  • boot 2.2.2RELEASE
  • cloud alibaba 2.1.0 RELEASE
  • java java8
  • Maven 3.5以上
  • Mysql 5.7以上

Zookeeper

  • 使用步骤:打开centos7,关闭服务器防火墙,然后启动zookeeper服务器。

  • 服务提供者(cloud-provider-payment8004),搭建步骤:

    • step1:新建module,更改POM,编写YML

      #8004表示注册到zookeeper服务器的支付服务提供者端口号
      server:
        port: 8004
      #服务别名----注册zookeeper到注册中心名称
      spring:
        application:
          name: cloud-provider-payment
        cloud:
          zookeeper:
            connect-string: 192.168.56.128:2181
      
    • step2:编写主启动类,注意注解,分别为:@SpringBootApplication、@EnableDiscoveryClient;

    • step3:编写服务的内容,ssm。但是案例为了简便,只写了controller部分。

    • 注意:在pom文件中,需要排除系统自带的3.5.3-zookeeper-beta,引入对应版本的zookeeper,否则会报版本冲突的故障。

  • 编写好代码后,运行,可以在centos7中的zookeeper中看到微服务:

    • step1:进入zookeeper的bin文件路径下,打开终端
    • step2:开启zookeeper,命令:zkServer.sh start;开启zookeeper客户端,命令:zkCli.sh;
    • step3:然后命令,查看连接上的服务:ls /
  • 消费者(cloud-consumerzk-order80)搭建:

    • step1:创建消费者模块(cloud-consumerzk-order80),然后与上面一样的pom文件,和基本一样的yml配置文件,以及相似的主启动类。(只有自身相关信息不同)

    • step2:创建配置类,配置RestTemplate的Bean对象,方便controller中直接注入。并添加负载均衡的功能,注解为@LoadBalanced;

      @Configuration
      public class ApplicationContextConfig {
          @Bean
          @LoadBalanced
          public RestTemplate getRestTemplate() {
              return new RestTemplate();
          }
      }
      
    • step3:创建controller,调用RestTemplate模板类的getForObject方法,远程调用http服务方法,将返回结果返回至页面中。

      @RestController
      @Slf4j
      public class OrderZKController {
          public static final String INVOKE_URL="http://cloud-provider-payment";
      
          @Resource
          private RestTemplate restTemplate;
      
          @GetMapping(value = "/consumer/payment/zk")
          public String paymentInfo() {
              String result = restTemplate.getForObject(INVOKE_URL+"/peyment/zk",String.class);
              return result;
          }
      }
      

需熟练掌握

知识点

  1. zookeeper是一个分布式协调工具,可以实现注册中心功能;

  2. 微服务注册进zookeeper中,是临时节点还是持久节点?

    是临时节点!一定时间内,缺失心跳,则直接在zookeeper的服务注册表中删除该节点。

tips

  • tool.lu/json 网站可以将json转为标准格式

  • RestTemplate提供了多种便捷访问远程Http服务的方法,是一种简单的访问restful服务模板类。详情见day02内容。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值