一、为什么使用Zookeeper 作为注册中心
- 默认SpringCloud使用Eureka作为注册中心
- 因为Eureka闭源,所以使用Zookkeeper作为注册中心
- 3.Zookeeper分布式协调工具,可以实现注册中心,采用临时节点,和生命周期进行关联,如果服务断开连接,该节点会自动被删除
二、Docker 中安装zookeeper
三、这里使用的spring-cloud版本
<parent>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-parent</artifactId>
<version>2.0.6.RELEASE</version>
<relativePath/>
</parent>
<dependencyManagement>
<dependencies>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-dependencies</artifactId>
<version>Finchley.SR1</version>
<type>pom</type>
<scope>import</scope>
</dependency>
</dependencies>
</dependencyManagement>
四、创建spring-cloud-zookeeper-server工程
- pom.xml文件
<dependencies>
<dependency>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-starter-web</artifactId>
</dependency>
<dependency>
<groupId>org.springframework.cloud</groupId>
<artifactId>spring-cloud-starter-zookeeper-discovery</artifactId>
</dependency>
</dependencies>
<build>
<plugins>
<plugin>
<groupId>org.springframework.boot</groupId>
<artifactId>spring-boot-maven-plugin</artifactId>
</plugin>
</plugins>
</build>
- bootstrap.yml文件
server:
port: 8080
spring:
application:
name: spring-cloud-zookeeper-sever
cloud:
zookeeper:
connect-string: 192.168.199.214:2181
discovery:
enabled: true
- 工程启动类
@SpringBootApplication
@EnableDiscoveryClient
public class ZookeeperServerApplication {
public static void main(String[] args) {
SpringApplication.run(ZookeeperServerApplication.class, args);
}
}
- 对外提供接口的controller
@RestController
public class HelloWorldController {
@GetMapping("/hi")
public String HelloWorld() {
return "Hello World!";
}
}
- 访问/hi 接口
curl -X GET http://localhost:8080/hi
Hello World!
关于我
- 关注不迷路,点赞走一波~ 转载请标注~
- 公众号
![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/9864a7de133f6a5d34bf658a8cdf1268.jpeg)