Spring Cloud(05)——Spring cloud整合Zookeeper代替Eureka

本文介绍了如何在SpringCloud项目中使用Zookeeper替代Eureka作为服务注册中心。首先,展示了如何配置并启动支付服务注册到Zookeeper,接着详细说明了订单服务的注册过程。通过Zookeeper客户端验证,两个服务成功注册并能正常通信。
摘要由CSDN通过智能技术生成

Spring Cloud(05)——Spring cloud整合Zookeeper代替Eureka

Spring Cloud(04)——Eureka的简介和部署使用中,我们使用Eureka作为我们微服务的注册中心,现在我们使用Zookeeper来代替Eureka,关于Zookeeper的使用请看Spring Boot——Dubbo和Zookeeper的简单使用.

1、支付服务注册进zookeeper

1、新建模块cloud-provide-payment8004

2、导入pom依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
           <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>
    <dependency>
        <groupId>com.cheng.springcloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
</dependencies>

3、编写yml配置文件

server:
  port: 8004

spring:
  application:
    name: cloud-provider-payment
  cloud:
    zookeeper:
    #192.168.96.1 本机的ip地址  2181Zookeeper端口号
      connect-string: 192.168.111.144:2181

4、主启动类

@SpringBootApplication
// @EnableDiscoveryClient适合Zookeeper或者consul作为注册中心
// @EnableDiscoveryClient注解让注册中心能够发现,扫描到该服务。
@EnableDiscoveryClient
public class PaymentMain8004 {
    public static void main(String[] args) {
        SpringApplication.run(PaymentMain8004.class,args);
    }
}

5、编写controller

@RestController
@Slf4j
public class PaymentController {

    @Value("${server.port}")
    private String serverPort;

    @RequestMapping(value = "/payment/zk")
    public String paymentZk(){
        return "springcloud with zookeeper:"+serverPort+"\t" + UUID.randomUUID().toString();
    }
}

6、测试

  1. 启动zookeeper服务端
  2. 启动zookeeper客户端
  3. 启动cloud-provide-payment8004模块

在zookeeper客户端测试服务是否注册到zookeeper服务端中:输入``ls / 命令,发现有个services节点,在输入ls /services`命令查看services节点的信息:

在这里插入图片描述

注册成功!

访问请求http://localhost:8004/payment/zk:

在这里插入图片描述

访问成功!

2、订单服务注册进zookeeper

1、创建模块cloud-consumerzk-order80

2、导入pom依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>

    <dependency>
        <groupId>com.cheng.springcloud</groupId>
        <artifactId>cloud-api-commons</artifactId>
        <version>${project.version}</version>
    </dependency>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-actuator</artifactId>
    </dependency>



    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-devtools</artifactId>
        <scope>runtime</scope>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>org.projectlombok</groupId>
        <artifactId>lombok</artifactId>
        <optional>true</optional>
    </dependency>

    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-test</artifactId>
    </dependency>
</dependencies>

3、编写yml配置文件

server:
  port: 80

spring:
  application:
    name: cloud-consumer-order
  cloud:
    zookeeper:
      #192.168.96.1 本机的ip地址  2181Zookeeper端口号
      connect-string: 192.168.96.1:2181

4、主启动类

@SpringBootApplication
@EnableDiscoveryClient
public class OrderZkMain80 {
    public static void main(String[] args) {
        SpringApplication.run(OrderZkMain80.class,args);
    }
}

5、配置restTemplate

把cloud-consumer-order80模块中的config目录拷贝到cloud-consumerzk-order80中

6、编写controller

@RestController
@Slf4j
public class OrderZkController {

    //把远程地址前缀提取出来
    public static final String REST1_URL_PREFIX = "http://cloud-provider-payment";

    @Resource
    private RestTemplate restTemplate;

    @GetMapping(value = "/consumer/payment/zk")
    public String paymentZk(){
        String result = restTemplate.getForObject(REST1_URL_PREFIX + "/payment/zk", String.class);
        return result;
    }
}

7、测试

  1. 启动zookeeper服务端
  2. 启动zookeeper客户端
  3. 启动cloud-provide-payment8004模块
  4. 启动cloud-consumerzk-order80模块

在zookeeper客户端测试服务是否注册到zookeeper服务端中:输入``ls / 命令,发现有个services节点,在输入ls /services`命令查看services节点的信息:

在这里插入图片描述

可以看到两个服务都成功注册到zookeeper中,如果想查看某个服务的具体信息,可以如下操作:

下面以cloud-provide-payment8004服务为例:

在这里插入图片描述

把红框里的json字符串利用json工具调整样式,便于服务信息的展示:

在这里插入图片描述

访问请求;http://localhost/consumer/payment/zk

在这里插入图片描述

访问成功!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

万里顾—程

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

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

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

打赏作者

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

抵扣说明:

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

余额充值