Docker快速安装ZooKeeper开源分布式协调服务器
ZooKeeper是一个开源服务器,可实现高度可靠的分布式协调。
GitHub:https://github.com/31z4/zookeeper-docker
图书馆参考
此内容从官方Docker Library文档导入 ,由原始上传者提供。您可以在https://hub.docker.com/images/zookeeper上查看此图像的Docker Hub页面
支持的标签和相应的Dockerfile
链接
3.4.13
,3.4
,latest
(3.4.13 / Dockerfile)3.5.4-beta
,3.5
(3.5.4-beta / Dockerfile)
快速参考
从哪里获得帮助:
Docker社区论坛,Docker社区Slack或Stack Overflow提交问题的地方:https:
//github.com/31z4/zookeeper-docker/issues维护者:
Docker社区支持的体系结构:(详细信息)
amd64
,arm32v6
,arm64v8
,i386
,ppc64le
,s390x
已发布的图像工件详细信息:
repo-info repo的repos/zookeeper/
目录(历史记录)
(图像元数据,传输大小等)图片更新:
官方图片PR带有标签library/zookeeper
官方图片repo的library/zookeeper
文件(历史)此描述的来源:
docs repo的zookeeper/
目录(历史)支持的Docker版本:
最新版本(尽力降至1.6)
什么是Apache Zookeeper?
Apache ZooKeeper是Apache Software Foundation的一个软件项目,为大型分布式系统提供开源分布式配置服务,同步服务和命名注册表。ZooKeeper是Hadoop的一个子项目,但现在它本身就是一个顶级项目。
wikipedia.org/wiki/Apache_ZooKeeper
启动Zookeeper服务器实例
docker run --name some-zookeeper --restart always -d zookeeper
此图像包括EXPOSE 2181 2888 3888
(zookeeper客户端端口,跟随端口,选择端口),因此标准容器链接将使其自动可用于链接的容器。由于Zookeeper“快速失败”,最好始终重启它。
从另一个Docker容器中的应用程序连接到Zookeeper
docker run --name some-app --link some-zookeeper:zookeeper -d application-that-uses-zookeeper
从Zookeeper命令行客户端连接到Zookeeper
$ docker run -it --rm --link some-zookeeper:zookeeper zookeeper zkCli.sh -server zookeeper
...通过docker stack deploy
或docker-compose
实施例stack.yml
为zookeeper
:
version: '3.1'services:zoo1:image: zookeeperrestart: alwayshostname: zoo1ports:- 2181:2181environment:ZOO_MY_ID: 1ZOO_SERVERS: server.1=0.0.0.0:2888:3888 server.2=zoo2:2888:3888 server.3=zoo3:2888:3888zoo2:image: zookeeperrestart: alwayshostname: zoo2ports:- 2182:2181environment:ZOO_MY_ID: 2ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=0.0.0.0:2888:3888 server.3=zoo3:2888:3888zoo3:image: zookeeperrestart: alwayshostname: zoo3ports:- 2183:2181environment:ZOO_MY_ID: 3ZOO_SERVERS: server.1=zoo1:2888:3888 server.2=zoo2:2888:3888 server.3=0.0.0.0:2888:3888
这将以复制模式启动Zookeeper 。运行docker stack deploy -c stack.yml zookeeper
(或docker-compose -f stack.yml up
)并等待它完全初始化。端口2181-2183
将被暴露。
请注意,在一台计算机上设置多台服务器不会产生任何冗余。如果发生导致机器死机的事情,所有zookeeper服务器都将脱机。完全冗余要求每台服务器都有自己的机器。它必须是完全独立的物理服务器。同一物理主机上的多个虚拟机仍然容易受到该主机的完全故障的影响。
在复制模式下运行Zookeeper时,请考虑使用Docker Swarm。
组态
Zookeeper配置位于/conf
。更改它的一种方法是将配置文件作为卷安装:
$ docker run --name some-zookeeper --restart always -d -v $(pwd)/zoo.cfg:/conf/zoo.cfg zookeeper
环境变量
如果zoo.cfg
未提供文件,则使用ZooKeeper推荐的默认值。可以使用以下环境变量覆盖它们。
$ docker run -e "ZOO_INIT_LIMIT=10" --name some-zookeeper --restart always -d 31z4/zookeeper
ZOO_TICK_TIME
默认为2000
。动物园管理员的tickTime
单个tick的长度,即ZooKeeper使用的基本时间单位,以毫秒为单位。它用于调节心跳和超时。例如,最小会话超时将是两个滴答
ZOO_INIT_LIMIT
默认为5
。动物园管理员的initLimit
以滴答为单位的时间量(请参阅tickTime),以允许关注者连接并同步到领导者。如果ZooKeeper管理的数据量很大,则根据需要增加此值。
ZOO_SYNC_LIMIT
默认为2
。动物园管理员的syncLimit
以滴答为单位的时间量(请参阅tickTime),以允许关注者与ZooKeeper同步。如果粉丝落后于领导者,他们就会被淘汰。
ZOO_MAX_CLIENT_CNXNS
默认为60
。动物园管理员的maxClientCnxns
限制由IP地址标识的单个客户端可以对ZooKeeper集合的单个成员进行的并发连接数(在套接字级别)。
ZOO_STANDALONE_ENABLED
默认为false
。动物园管理员的standaloneEnabled
在3.5.0之前,可以在独立模式或分布式模式下运行ZooKeeper。这些是单独的实现堆栈,并且无法在运行时在它们之间进行切换。默认情况下(为了向后兼容),standaloneEnabled设置为true。使用此默认设置的结果是,如果以单个服务器启动,则不允许集合增长,并且如果从多个服务器启动,则不允许缩小以包含少于两个参与者。
ZOO_AUTOPURGE_PURGEINTERVAL
默认为0
。动物园管理员的autoPurge.purgeInterval
3.4.0中的新增功能:必须触发清除任务的时间间隔(以小时为单位)。设置为正整数(1和更高)以启用自动清除。默认为0。
ZOO_AUTOPURGE_SNAPRETAINCOUNT
默认为3
。动物园管理员的autoPurge.snapRetainCount
3.4.0中的新增功能:启用后,ZooKeeper自动清除功能分别在dataDir和dataLogDir中保留autopurge.snapRetainCount最新快照和相应的事务日志,并删除其余日志。默认为3.最小值为3。
复制模式
如果要以复制模式运行Zookeeper,则必须使用下面的环境变量。
ZOO_MY_ID
id必须在整体中是唯一的,并且应该具有介于1和255之间的值。请注意,如果使用/data
已包含该myid
文件的目录启动容器,则此变量不会产生任何影响。
ZOO_SERVERS
此变量允许您指定Zookeeper集合的计算机列表。每个条目都有server.id=host:port:port
。参赛作品以空格分隔。请注意,如果使用/conf
已包含该zoo.cfg
文件的目录启动容器,则此变量不会产生任何影响。
在3.5中,这种语法已经改变。应指定服务器:server.id=<address1>:<port1>:<port2>[:role];[<client port address>:]<client port>
Zookeeper动态重新配置
存储数据的位置
该图像被配置有以量/data
和/datalog
以分别保持动物园管理员内存数据库的快照和更新数据库的事务日志。
放置事务日志的位置要小心。专用的事务日志设备是始终如一的良好性能的关键。将日志置于繁忙的设备上会对性能产生负面影响。
如何配置日志记录
默认情况下,ZooKeeper将stdout / stderr输出重定向到控制台。您可以/logs
通过传递环境变量重定向到位于的文件ZOO_LOG4J_PROP
,如下所示:
$ docker run --name some-zookeeper --restart always -e ZOO_LOG4J_PROP="INFO,ROLLINGFILE" zookeeper
这将写入日志/logs/zookeeper.log
。检查ZooKeeper日志记录以获取更多详细信息。
/logs
为方便起见,此图像配置为音量。
License
查看此映像中包含的软件的许可证信息。
与所有Docker映像一样,这些映像也可能包含其他许可证(例如来自基本分发版的Bash等,以及所包含的主要软件的任何直接或间接依赖关系)。
这是能够自动检测一些额外的许可信息可能中找到的repo-info
版本库的zookeeper/
目录。
对于任何预先构建的图像使用,图像用户有责任确保对此图像的任何使用都符合其中包含的所有软件的任何相关许可。
转载来源:https://docs.docker.com/samples/library/zookeeper/
Docker快速安装ZooKeeper开源分布式协调服务器相关推荐
- Docker快速安装RabbitMQ服务
Docker快速安装RabbitMQ服务 快速开始 #!/bin/bash # 建议保存为start.sh脚本执行 docker run -d --hostname my-rabbit --name ...
- Docker快速安装Sybase数据库DBeaver数据库图形化管理开发工具
Docker快速安装Sybase数据库 Sybase 15.7 Based on ifnazar/sybase_15_7 Needs about 30 seconds after start for ...
- 使用Docker快速安装部署ES和Kibana并配置IK中文分词器以及自定义分词拓展词库
使用Docker快速安装部署ES和Kibana的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后, ...
- 使用docker快速安装Oracle11gR2
使用docker快速安装Oracle11gR2 0. 前言 1. 安装及配置docker 2. 使用docker下载Oracle11g安装包镜像 3. 使用安装运行Oracle11g 4. 配置Ora ...
- Docker 快速安装搭建 Ngnix 环境,并配置反向代理
欢迎关注个人微信公众号: 小哈学Java, 文末分享阿里 P8 高级架构师吐血总结的 <Java 核心知识整理&面试.pdf>资源链接!! 个人网站: https://www.ex ...
- 使用Docker快速安装部署mysql
使用Docker快速安装部署mysql的前提:首先需要确保已经安装了Docker环境 如果没有安装Docker的话,可以参考上一篇的内容:Linux上安装Docker 有了Docker环境后,就可以使 ...
- docker下载安装Zookeeper
下载安装Zookeeper 文章目录 下载安装Zookeeper 1.下载Zookeeper镜像 2.启动容器并添加映射 3.查看容器是否启动 4.idea安装zk插件 1.下载Zookeeper镜像 ...
- 用docker快速安装xwiki
Wiki是一种在网络上开放且可供多人协同创作的超文本系统 为了方便开发 和记录变更文档 决定安装一个xwiki系统 xwiki的学习与使用 -- http://www.xwikichina.com ...
- Docker 方式安装 Nginx 、阿里云服务器上装 Ngnix
前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家.点击跳转到教程. 非 Docker 方式安装,直接 Linux 安装见另一文:Linux 上 安装 nginx .阿里 ...
最新文章
- SQL Server表分区的NULL值问题
- 1.1.2 以Web Host方式寄宿Web API
- CI Weekly #22 | flow.ci 新版 iOS 构建流程的 4 大变化
- 小程序triggerevent 传参_微信小程序——无限递归的层次列表
- 前端学习(3344):设计模式之工厂模式1
- java销售额查询_用JSP+JavaBean开发模式实现一个销售额的查询
- Navicat导入数据库数据结构sql报错datetime(0)
- 女孩和程序员相亲,吃饭消费了380,他没结账就先走,晚上收到微信愣了
- MATLAB矩阵合并
- HTTP详解(1)-工作原理
- 纯HTML5+CSS3仿B站首页
- LeetCode 43. 字符串相乘【c++/java详细题解】
- ICLR 2021 NAS 相关论文(包含Workshop)
- Sigmastar 方案的相机开发流程和注意点
- 手机拨出等待时间长_手机打不出去电话怎么回事 一分钟轻松排查原因
- c++求矩阵的秩_高等代数|第八章 矩阵 最小多项式与若尔当标准形
- python是哪种动物_基于Python的动物识别专家系统
- win7计算机虚拟内存,Win7虚拟内存怎么设置最好?系统高手告诉你如何更好的设置虚拟内存...
- 了不起的盖茨比读后感---Java程序员学Python学习笔记(二)
- 编写autojs脚本时,vscode连接不上手机解决办法
热门文章
- 响应式网页设计应该注意的9个原则
- javascript 通过地址获取经纬度 get lat long from address
- 深入理解JavaScript系列:《你真懂JavaScript吗?》答案详解
- Shell编程:shell script 的追踪与 debug
- volatile深入
- 事务(注解声明式事务管理)
- SQL取分组中前、后几条数据
- linux下编译安装ACE-6.5.1
- gcc g++ 支持c++11编译的标准和区别
- 【AI视野·今日NLP 自然语言处理论文速览 第八期】Wed, 16 Jun 2021