服务注册与发现【Zookeeper】

Zookeeper 服务器取代 Eureka 服务器,作为服务注册中心(因我本地没有安装Zookeeper,则下面内容无本人实战案例,引用的其他案例来说明)

服务提供者:

新建一个服务提供者 cloud-provider-payment8004(与前面Eureka服务提供者区分),端口8004

引入POM,其他的依赖和其他服务提供者一样,只是少了EurekaClient依赖,多了Zookeeper依赖:

        
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-zookeeper-discoveryartifactId>
        dependency>

YML

server:
  port: 8004

spring:
  application:
    name: cloud-provider-payment
  cloud:
    zookeeper:
      connect-string: 192.168.136.140:2181
 

主启动类:添加注解:@EnableDiscoveryClient

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

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

启动问题:

如果引入的Zookeeper jar包版本和安装的Zookeeper版本不一致,就会启动报错,类似如下问题:

服务注册与发现【Zookeeper】_第1张图片

 

 

 服务注册与发现【Zookeeper】_第2张图片

 

 

 此时,我们就可以排除Zookeeper的POM中自带的 zookeeper*. jar,然后引入和我们安装版本对应的jar包版本:

 
    
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-zookeeper-discoveryartifactId>
            
            <exclusions>
                <exclusion>
                    <groupId>org.apache.zookeepergroupId>
                    <artifactId>zookeeperartifactId>
                exclusion>
            exclusions>
        dependency>
            
        
        <dependency>
            <groupId>org.apache.zookeepergroupId>
            <artifactId>zookeeperartifactId>
            <version>3.4.9version>
        dependency>
 

 

服务消费者:

新建 cloud-consumerzk-order8081

POM:

        
        <dependency>
            <groupId>org.springframework.cloudgroupId>
            <artifactId>spring-cloud-starter-zookeeper-discoveryartifactId>
        dependency>

YML:

server:
  port: 80

spring:
  application:
    name: cloud-consumer-order
  cloud:
    zookeeper:
      connect-string: 192.168.136.140:2181
 

主启动:

import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;

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

其他的业务实现,和Eureka一样。

 

总结:

将服务注册中心,从Eureka 换成Zookeeper 后,涉及到需要修改的地方就只有:

1. 服务提供者和消费者,从引入EurekaClient 依赖,切换成引入 Zookeeper 依赖。

2. yml 文件修改:原来配置的Eureka注册中心地址,换成Zookeeper注册中心地址。

3. 主启动类:去掉 @EnableEurekaClient 的 Eureka注解,改为 @EnableDiscoveryClient 的Zookeeper注解。

4. 如果遇到jar包版本冲突而导致的启动失败问题,那就剔除掉默认引入的jar包而重新引入和安装的Zookeeper版本一致的jar包。

 

你可能感兴趣的:(服务注册与发现【Zookeeper】)