zookeeper的作用:
1,用于分布式系统中加载动态配置
abc按照集群的方式工作,为了保证abc服务的一致性,可以使用zookeeper来保证,这样abc中任意一个服务对数据作出改动其他两个也能及时改动
2,用于名字服务,类似于dns服务器
abc三个都要访问登录服务,例如当想要访问百度网页时,只需要将百度的域名给zk,zk就可以返回百度网页的ip和端口
3,分布式锁
常用在多个进程访问统一资源的情况下,例如如果没有锁的话,每个服务都会执行一遍转账操作,那么就会转账300元
使用分布式锁:
A服务在执行期间,其他两个服务并不会执行
if(lock == false){
lock = true;
//才去执行响应逻辑
}else{
}
4,服务发现(ping)
abc三个服务是集群关系,如果b出现问题不能ping通,那么zk就记录下来,并给想要登录的客户分配a和c服务
zookeeper的安装:
参考连接:Centos7安装zookeeper详细流程(亲测绝对成功!)_Java大侠的博客-CSDN博客_centos7安装zookeeper
推荐工具使用finalshell,免费又能拖文件
一、下载tar包
进入zookeeper官网
Index of /zookeeper
下载apache-zookeeper-3.6.3.bin.tar.gz 到本地电脑上
直接将本地的文件拖到opt文件夹中
二、解压
tar -zxvf apache-zookeeper-3.6.3-bin.tar.gz
移动 apache-zookeeper-3.6.3-bin 目录到 /usr/loca/ 目录下
此处后面的文件名是新建的文件夹的名字,是3.6.2还是3.6.3没有太大关系,此处主要是原博客中使用的3.6.2,而且后面还要用这个名字索性就不改了
mv apache-zookeeper-3.6.3-bin /usr/local/zookeeper-3.6.2
3、新建data 和 logs文件夹
[root@service local]# cd zookeeper-3.6.2/
[root@service zookeeper-3.6.2]# mkdir data
[root@service zookeeper-3.6.2]# mkdir logs
4、初始化zookeeper配置文件
进入zookeeper文件夹下的conf配置目录
复制zookeeper的配置模板zoo_sample.cfg
[root@service zookeeper-3.6.2]# cd conf/
[root@service conf]# ls
[root@service conf]# cp zoo_sample.cfg zoo.cfg
5、修改zookeeper配置信息
[root@service conf]# vim zoo.cfg
修改dataDir与dataLogDir
#路径为本地存在名称路径
#数据文件夹
dataDir=/usr/local/zookeeper-3.6.2/data
#日志文件夹
dataLogDir=/usr/local/zookeeper-3.6.2/log
6、修改系统配置文件
进入系统配置文件,将以下内容插入进入,保存退出
vim /etc/profile
#zookeeper-3.6.2配置
export ZOOKEEPER_HOME=/usr/local/zookeeper-3.6.2/
export PATH=$ZOOKEEPER_HOME/bin:$PATH
export PATH
使 /etc/ 目录下的 profile 文件生效:
[root@service conf]# source /etc/profile
7、开放端口
[root@service bin]# firewall-cmd --permanent --zone=public --add-port=2181/tcp
重启防火墙
[root@service huanglejia]# systemctl restart firewalld
查看开放端口
[root@service huanglejia]# netstat -ntl
8、启动zookeeper
启动服务端
进入zookeeper目录
[root@service bin]# cd /usr/local/zookeeper-3.6.2/
进入bin目录
[root@service zookeeper-3.6.2]# cd bin/
启动zookeeper服务端
[root@service bin]# ./zkServer.sh start
启动客户端
[root@service bin]# ./zkCli.sh