zookeeper系列1
分布式学习之zookeeper-1
开始学习zookeeper系列
本次学习一些入门操作.
版本: 3.4.x
最新版本:3.6.x 下载与安装
下载地址: https://zookeeper.apache.org/releases.html
放入本地目录进入.../conf目录,复制zoo_sample.cfg更名为zoo.cfg
配置文件主要内容: tickTime:客户端与服务器或者服务器与服务器之间维持心跳,也就是每个tickTime时间就会发送一次心跳。通过心跳不仅能够用来监听机器的工作状态,还可以通过心跳来控制Flower跟Leader的通信时间,默认情况下FL的会话时常是心跳间隔的两倍. tickTime单位为毫秒. initLimit: follower在启动过程中,会从leader同步所有最新数据,然后确定自己对外服务的起始状态.Leader允许follower在initTime时间内完成这个工作.通常清光下,不需要在意这个参数的设置.如果ZK集群数量确实很大.Follower启动的时候,从Leader上同步数据的时间就会变长,这个时候需要调整这个参数.默认为10. syncLimit: zk运行期间,Leader检测Follower发来的心跳包,当leader发出心跳包syncLimit之后还没有收到Follower的响应。那么认为这个Follower已经下线。 dataDir、dataLogDir: 对应的目录是用来存放myid信息跟一些版本,日志,跟服务器唯一的ID信息 clientPort : 客户端连接服务器的端口 windows
设置好配置文件,运行 /bin/zkServer.cmd启动server。然后执行/bin/zkCli.cmd运行客户端
下面命令检查。(当然也可以配置环境变量,直接在cmd/powershell中执行响应命令。) > create -e /j 1 Created /j > get /j 1 cZxid = 0x3a ctime = Sat Dec 12 09:51:57 CST 2020 mZxid = 0x3a mtime = Sat Dec 12 09:51:57 CST 2020 pZxid = 0x3a cversion = 0 dataVersion = 0 aclVersion = 0 ephemeralOwner = 0x17654a472b60000 dataLength = 1 numChildren = 0linux安装和配置
下载好文件用rz或者工具上传至自己想要存放的目录
或者使用wget 直接下载。剩余操作和windows类似 # 我这里linux下载的是3.6.2版本 # 重命名 > mv apache-zookeeper-3.6.2-bin/ apache-zookeeper-3.6.2/ # 进入 conf目录 > cd apache-zookeeper-3.6.2/conf # 复制 > cp zoo_sample.cfg zoo.cfg # 编辑 dataDir、dataLogDir > vim zoo.cfg # 启动zk > ./zkServer.sh start Starting zookeeper ... STARTED # 查看zookeeper是否已经启动成功 > ./zkServer.sh status > ps -ef | grep zookeeper # 停止zk > ./zkServer.sh stopzk集群搭建widows
这里使用单机进行模拟(伪集群)。
创建三个文件分别放入zk文件。
三个配置文件如下: # 1 tickTime=2000 initLimit=10 minSessionTimeout=50000 maxSessionTimeout=500000000 dataDir=../zk/data dataLogDir=../zk/logs clientPort=2181 server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389 #2 tickTime=2000 initLimit=10 minSessionTimeout=50000 maxSessionTimeout=500000000 syncLimit=5 dataDir= ../zk/data dataLogDir=../zk/logs clientPort=2182 server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389 #3 tickTime=2000 initLimit=10 minSessionTimeout=50000 maxSessionTimeout=500000000 syncLimit=5 dataDir=../zk/data dataLogDir=../zk/logs clientPort=2183 server.1=localhost:2287:3387 server.2=localhost:2288:3388 server.3=localhost:2289:3389
注意要创建对应的数据和日志目录。
在配置的 dataDir路径添加myid文件,内容分别写 1、2、3
分别启动zkServer.cmd。都一个启动的时候会报错,不需要理会直接启动其他即可。
启动的时候可以看到当前节点所处的状态(followering、leading) linux
同windows类似 # 复制3份 > cp -r /usr/local/apache-zookeeper-3.6.2/ zookeeper-3.6.2-z1 > cp -r /usr/local/apache-zookeeper-3.6.2/ zookeeper-3.6.2-z2 > cp -r /usr/local/apache-zookeeper-3.6.2/ zookeeper-3.6.2-z3 # 编写配置文件 > vim zookeeper-3.6.2-z1/conf/zoo.cfg > vim zookeeper-3.6.2-z2/conf/zoo.cfg > vim zookeeper-3.6.2-z3/conf/zoo.cfg # 创建目录 > mkdir -p zookeeper-3.6.2-z1/zk/data > mkdir -p zookeeper-3.6.2-z1/zk/logs > mkdir -p zookeeper-3.6.2-z2/zk/data > mkdir -p zookeeper-3.6.2-z2/zk/logs > mkdir -p zookeeper-3.6.2-z3/zk/data > mkdir -p zookeeper-3.6.2-z3/zk/logs # 写myid文件 > echo "1" > zookeeper-3.6.2-z1/zk/data/myid > echo "2" > zookeeper-3.6.2-z2/zk/data/myid > echo "3" > zookeeper-3.6.2-z3/zk/data/myid # 启动 zk > ./zookeeper-3.6.2-z1/bin/zkServer.sh start > ./zookeeper-3.6.2-z2/bin/zkServer.sh start > ./zookeeper-3.6.2-z3/bin/zkServer.sh startdocker
关于docker的使用可以看我之前写的 docker学习 docker-compose # 拉取zookeeper镜像 > docker pull zookeeper # 查看镜像 > docker image list # 启动镜像 > docker run --name myzk -d zookeeper:latest # 查看日志 > docker logs -f my_zookeeper # 上面的启动命令没有指定宿主机的映射端口如果想访问可以使用下面的命令 > docker run -it --rm --link myzk:zookeeper zookeeper zkCli.sh -server zookeeper # 也可以用下面的命令指定端口启动镜像 > docker run --name myzk -d -p 2181:2181 zookeeper:latest # 删除容器 > docker rm -f myzk ## 使用 docker-compose 搭建集群 > vim docker-compose.yml # 写入以下内容 version: "2.1" services: zoo1: image: zookeeper restart: always container_name: 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 container_name: 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 container_name: 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 # compose up -d 表示后台运行 > docker-compose up -dzk常见命令创建节点 create /path data -s 顺序节点 -e 临时节点 获取节点 get /path 给节点设置数据 set /path data 列出子节点 ls /path 检查状态 stat /path 递归移除节点 rmr /path zk能为我们做什么统一命名服务 配置中心 分布式锁
当然还有其他的。
联想thinkPad系列,选哪个好?主要用于编程?T系列,如果加点钱可上TxxxS系列,轻薄而且该有的接口都有,不建议x系列,接口太少就不能选别的品牌?华为小米苹果从来没用过联想华为好用鲁大师对比同类产品,看哪个性价比高,能满足需
第二个华为已出现?花500亿自研芯片,采用台积电6nm工艺打造近些年来各大手机企业巨头纷纷投入芯片研发中,2019年时,苹果斥资10亿美元巨资,收购了英特尔的大部分智能手机调制解调器芯片业务,为自己的5G芯片研发助力。有消息称,2023年时,
如果联想走技工贸的路线,会成为第二个华为吗?对于联想也好,华为也好,我们有时候不要考虑他是干什么的,做什么业务更多需要考虑的是这个企业的个性是什么!例如在互联网企业阿里是外放性的企业,这就造成了人人都是营销销售人员的局面!而
荣耀30pro和荣耀V30pro,放到现在还值得买吗?荣耀30Pro,你可以看看它的参数,红外,nfc等等都有,再打两年问题不大。用一年多了没毛病才入手不到一个月,性价比高,使用流畅。前者我在用,很好用,特别是风景拍摄很好!有货的情况
为什么高配置打lol掉帧?朋友们好,LOL这款游戏对配置要求其实不高,对于楼主所说的高配置玩lol掉帧,建议检查下电脑设置,看看是不是默认集成显卡,如果是,建议手动更改成独显优先!你的高配置是有多高?具体什
谷仓孵化又一家谷仓投资公司,估值近10亿近日,谷仓投资的新材料公司大毛牛完成数千万A轮融资。作为谷仓早期投资的基础材料公司,大毛牛此轮由东方汇富领投产业链资源方跟投,投后估值近10亿人民币。谷仓新国货研究院聚焦于新国货的
氢能大基建输氢管道有望大爆发编者本文12月14日发布在上善流水深度研究知识星球,同步发布上善流水深度研究微信公众号。直接干货!中央经济工作会议指出,要超期开展基础设施建设。超前开展基础设施建设是应对经济下行压
为了鸿蒙系统能活下来,华为有多拼?不久前,鸿蒙系统正式在手机端运行,许多远古机型都得到了更新,让人大呼良心。鸿蒙系统整体的用户数现在已经突破了1。5亿,对于一个系统来说,这个用户增长速度是相当恐怖的。小米的米UI,
苹果在南加州设立新办公室,开发自研无线芯片鞭牛士12月17日消息,苹果正在南加州设立新办公室,以便开发自研无线芯片,这意味着,苹果可能最终会取代目前从博通Skyworks和高通等公司采购的部分组件。该办公室位于加利福尼亚州
中兴公布自主研发的全新手机操作系统MYOS面对着国内智能操作系统被微软谷歌苹果所垄断的现状,中兴正在研发具有自主知识产权的操作系统,以应对未来产业界的一些不确定因素,尤其是未来可能会出现的专利大棒。近期,中兴公布全新手机操
上手世界上最小的操作系统MenuetOS,仅有1。4M,安装运行全教程背景和基础配置这款系统号称是世界上最小的操作系统,整个镜像文件仅有1。4MB的大小。此款系统是由英国软件工程师VilleMikaelTurjanmaa和MadisKalme开发的,