【SpringCloud】02-服务注册与发现-Zookeeper

语雀源文链接

在这里插入图片描述

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

服务提供者8004注册进Zookeeper

和创建80001一样,创建8004的module,在module中仿照8001一样进行

  1. pom文件:取消Eureka依赖,加入zookeeper依赖包,如下:
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId
<dependency>
  1. 主启动类:由于是Zookeeper注册,所以没有服务Server端,因此只需要加入@EnableDiscoveryClient注解;
  2. yml文件:与之前不同的是,此次是向Zookeeper注册,所以yml文件有稍微不同:
#服务别名,注册zookeeper到注册中心名称
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper:
      connect-string: 服务地址:2181    #zookeeper服务的地址和端口
  1. 编写一个Controller,当进行服务访问的时候,可以返回响应的端口以及UUID;
  2. 启动8004,将其注册进Zookeeper:

这个时候会发现报以下错误,这是因为在引入Zookeeper整合依赖的时候会默认携带一个Zookeeper3.5.3Bate版本,与服务器上的Zookeeper版本不一致,所以这个时候就需要将其进行移除,同时将冲突的slf4j依赖进行清除;然后再引入对应版本的Zookeeper依赖;
![image.png](https://img-blog.csdnimg.cn/img_convert/6073cfe193339dc1bf19925810d60dd1.png#clientId=uff276f5c-aecd-4&crop=0&crop=0&crop=1&crop=1&from=paste&height=117&id=u2f6f789c&margin=[object Object]&name=image.png&originHeight=117&originWidth=1252&originalType=binary&ratio=1&rotation=0&showTitle=false&size=30911&status=done&style=none&taskId=u2232fd91-0d72-4745-9338-11ccf36b837&title=&width=1252)
所以更改后的pom文件如下;

<!--spingcloud整合zookeeper客户端-->
<dependency>
  <groupId>org.springframework.cloud</groupId>
  <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
  <!--            先排除自带的zookeeper3.5.3beta版本-->
  <exclusions>
    <exclusion>
      <groupId>org.apache.zookeeper</groupId>
      <artifactId>zookeeper</artifactId>
    </exclusion>
    <exclusion>
      <groupId>org.slf4j</groupId>
      <artifactId>slf4j-log4j12</artifactId>
    </exclusion>
  </exclusions>
</dependency>
<dependency>
  <groupId>ch.qos.logback</groupId>
  <artifactId>logback-classic</artifactId>
</dependency>
        

运行8004服务,可以将其注册到Zookeeper的服务中

服务节点是临时节点还是持久节点:

临时性,高可用,数据一致性

订单服务注册进Zookeeper

仿照8004进行新建

  1. 新建8080module;
  2. 修改pom文件
  3. 增加启动类
  4. 编写application.yml配置文件
  5. 增加RestTemplate配置类
@Configuration
public class ApplicationContextCOnfig {
    @Bean
    @LoadBalanced
    public RestTemplate getRestTemplate(){
        return new RestTemplate();
    }
}

  1. 编写Controller,用于访问服务提供者
@RestController
@Slf4j
public class ZKController {
    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+"/payment/zk",String.class);
        return result;
    }
}
  1. 启动8080zk项目,将其注册进Zookeeper,然后通过8080订单消费者访问8004服务提供者;
  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

PoJo123

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值