【SpringCloud】Zookeeper代替Eureka
凉凉了,Eureka 2.x 停止维护,Spring Cloud 何去何从?
Eureka源码地址
Zookeeper代替Eureka
简单容易CentOS7 安装ZooKeeper教程地址:https://blog.csdn.net/xiangjunyes/article/details/114270903
Zookeeper是一个分布式协调工具,可以实现注册中心功能。
关闭了linux服务器防火墙或启动zookeeper服务器。
Zookeeper服务器取代eureka,zk作为服务注册中心。
我们现在的java程序在win10,注册中心zk在centos7,就要保证两台机器是互相ping通。
新建项目cloud-provider-payment8004
pom.xml
<dependencies>
<!-- SpringBoot整合Web组件 -->
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency><!-- 引入自己定义的api通用包,可以使用Payment支付Entity -->
<groupId>com.atguigu.springcloud</groupId>
<artifactId>cloud-api-commons</artifactId>
<version>${project.version}</version>
</dependency>
<!-- SpringBoot整合zookeeper客户端 -->
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
<!--先排除自带的zookeeper3.5.3-->
<exclusions>
<exclusion>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
</exclusion>
</exclusions>
</dependency>
<!--添加zookeeper3.4.9版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<version>3.4.9</version>
</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>
<scope>test</scope>
</dependency>
</dependencies>
添加application.yml
server:
port: 8004
spring:
application:
name: cloud-provider-payment
cloud:
zookeeper: 192.168.235.128:2181
主启动类
package com.xiang.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
@SpringBootApplication
@EnableDiscoveryClient
public class PaymentMain8004 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8004.class,args);
}
}
启动zkCli.sh
现在只有zookeeper结点
启动微服务PaymentMain8004
结果启动失败
错误界面截图
这是为什么了?
jar包版本冲突
服务器zookeeper版本为3.6.2 java程序为3zookeeper版本为.5.2
解决办法
重新启动解析json
是临时结点还是永久结点
现在停掉payment8004服务
停止服务后, 在心跳结束后, zookeeper把节点删除
重新启动后, zookeeper会产生一个该服务的新流水号
使用cp思想, 保持数据一致性.
还没有评论,来说两句吧...