由于Eureka现在已经停更了,所以现在大多数公司都选择了Zookeeper和Consul来作为注册中心,这篇博客先来带大家上手Zookeeper,下一篇再介绍Consul的使用。依旧声明一下,此博客只是自己看阳哥b站的2020微服务视频结合他的脑图整理的笔记,有兴趣的可以直接去看视频学习,当然我相信你看完没过多久就会忘记的,还是自己跟着动手操作一遍吧,记一记知识点。好的,废话不多说,咱开始进入正题。
注册中心Zookeeper
ZooKeeper是一个分布式的,开放源码的分布式应用程序协调服务,是Google的Chubby一个开源的实现,是Hadoop和Hbase的重要组件。它是一个为分布式应用提供一致性服务的软件,提供的功能包括:配置维护、域名服务、分布式同步、组服务等。
Zookeeper在Windows上安装步骤
这里给大家介绍Zookeeper在windows的安装,简单上手:
安装包可直接在官网下载:http://zookeeper.apache.org/,当然欢迎留言私聊,我可以私发给你
1.直接解压安装,我的安装路径是D:\Application\zookeeper-3.4.11
2.自己再额外建一个data和log目录
3.在conf文件夹下复制一份Zoo_sample.cfg文件,改名为zoo.cfg,如下图:
4.修改zoo.cfg配置如下:(配置刚刚建的数据和日志路径)
5.启动bin下的zkSercer.cmd
spring cloud整合zookeeper
新建一个服务,结构如下:
pom依赖:(我这里排除了springCloud自带的3.5.3版本,还有日志冲突)不排除会报错
<!--zookeeper-client-->
<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.11版本-->
<dependency>
<groupId>org.apache.zookeeper</groupId>
<artifactId>zookeeper</artifactId>
<exclusions>
<exclusion>
<groupId>org.slf4j</groupId>
<artifactId>slf4j-log4j12</artifactId>
</exclusion>
</exclusions>
<version>3.4.11</version>
</dependency>
application.yml(zookeeper默认端口2181)
主启动类:
package com.atguigu.springcloud;
import org.springframework.boot.SpringApplication;
import org.springframework.boot.autoconfigure.SpringBootApplication;
import org.springframework.cloud.client.discovery.EnableDiscoveryClient;
/**
* @Desc
* @Author chenjiaming
* @Date 2020/9/13 11:29
*/
@SpringBootApplication
@EnableDiscoveryClient //该注解用于向使用consul或者zookeeper作为注册中心时注册服务
public class PaymentMain8004 {
public static void main(String[] args) {
SpringApplication.run(PaymentMain8004.class, args);
}
}
Controller:
package com.atguigu.springcloud.controller;
import lombok.extern.slf4j.Slf4j;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.web.bind.annotation.RequestMapping;
import org.springframework.web.bind.annotation.RestController;
import java.util.UUID;
/**
* @Desc
* @Author chenjiaming
* @Date 2020/9/13 11:32
*/
@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();
}
}
启动测试:
zkServer中
我们可以在zkServer中查看这个注册的服务信息:
启动一个客户端输入如下命令即可看见:
好的,zookeeper的安装与Spring cloud的整合就介绍到这了,是不是觉得没有图形化界面呢?当然有些公司会自己开发对应图形化界面。我们下篇介绍的Consul就是自带图形化界面的,并且简洁好看。
如有疑问,欢迎留言评论。