zookeeper介绍及使用

zookeeper介绍

什么是分布式协调技术在这里插入代码片

分布式协调技术主要用来解决分布式环境当中多个进程之间的同步控制,让他们有序的去访问某种临界资源,防止造成“脏数据”的后果。

什么是分布式锁

为了防止分布式系统中的多个进程之间相互干扰,我们需要一种分布式协调技术来对这些进程进行调度,而这个分布式协调技术的核心就是实现这个分布式锁

在这里插入图片描述

什么是zookeeper

一种分布式协调服务(分布式锁),同时也是服务注册与发现

docker 安装 zookeeper

部署集群
在usr/local/docker/zookeeper 下 创建docker-compose.yml

version: '3.1'
services:
    zoo1:
        image: zookeeper
        restart: always
        hostname: zoo1
        ports:
            - 2181:2181
        environment:
            ZOO_MY_ID: 1
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo2:
        image: zookeeper
        restart: always
        hostname: zoo2
        ports:
            - 2182:2181
        environment:
            ZOO_MY_ID: 2
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

    zoo3:
        image: zookeeper
        restart: always
        hostname: zoo3
        ports:
            - 2183:2181
        environment:
            ZOO_MY_ID: 3
            ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888

如果要看谁是leader 和 follower 的话

通过交互式的方式进入:

docker exec -it docker_zool_1 /bin/bash
pwd 
# /zookeeper-3.4  # 这是指当前根目录下
cd bin
./zkServer.sh status
# follower # 发现 docker_zool_1 是一个 从节点

看一下zookeeper 的配置文件
配置文件路径:/conf/zoo.cfg

clientPort=2181
dataDir=/data 
dataLogDir=/datalog
tickTime=2000  # 心跳频率 2000毫秒(客服端和服务端的时间间隔)
initLimit=5 # leader 和 follower 之间连接心跳允许最大应答次数,2000 * 5 = 10秒
syncLimit=2 # leader 和 follower 之间请求应答时间长度 ,2000 * 2 = 4秒
autopurge.snapRetainCount=3 # 指定了清理频率,单位是小时,需要填写一个 1 或更大的整数,默认是 0,表示不开启自己清理功能。
autopurge.purgeInterval=0 # 指定了需要保留的文件数目。默认是保留 3 个。
maxClientCnxns=60 # 限制连接到 Zookeeper 的客户端的数量,限制并发连接的数量,它通过 IP 来区分不同的客户端。此配置选项可以用来阻止某些类别的 Dos 攻击。将它设置为 0 或者忽略而不进行设置将会取消对并发连接的限制。
server.1=192.168.0.1:2888:3888
server.2=192.168.0.2:2888:3888
server.3=192.168.0.3:2888:3888
发布了46 篇原创文章 · 获赞 6 · 访问量 2640

猜你喜欢

转载自blog.csdn.net/renguiriyue/article/details/104056741