| 1234567891011121314151617181920212223242526272829303132333435363738394041424344 |
- services:
- zookeeper:
- image: registry.cn-chengdu.aliyuncs.com/reghao/zookeeper:3.8.4
- restart: always
- container_name: zookeeper
- hostname: node211
- ports:
- - "2181:2181"
- - "2888:2888" # 🚨 集群必须暴露:原子广播端口
- - "3888:3888" # 🚨 集群必须暴露:Leader选举端口
- volumes:
- - /opt/docker/zookeeper/data:/data
- - /opt/docker/zookeeper/datalog:/datalog
- - /opt/docker/zookeeper/logs:/logs
- environment:
- ZOO_MY_ID: 1 # 🚨 机器1固定为 1
- # 🚨 核心:用双引号包裹的全局集群视图(三台机器此项完全一致)
- ZOO_SERVERS: "server.1=192.168.0.211:2888:3888;2181,server.2=192.168.0.212:2888:3888;2181,server.3=192.168.0.213:2888:3888;2181"
- ZOO_AUTOPURGE_PURGEINTERVAL: 24
- ZOO_AUTOPURGE_SNAPRETAINCOUNT: 5
- ZOO_LOG4J_PROP: "INFO, ROLLINGFILE"
- ZOO_LOG_MAXFILESIZE: "100MB"
- ZOO_LOG_MAXBACKUPINDEX: 10
- JVMFLAGS: "-Xms512m -Xmx512m"
- ZOO_MAX_CLIENT_CNXNS: 60
- deploy:
- resources:
- limits:
- cpus: '1.0'
- memory: 1G
- reservations:
- cpus: '0.5'
- memory: 512M
- logging:
- driver: "json-file"
- options:
- max-size: "100m"
- max-file: "3"
- healthcheck:
- test: ["CMD", "zkServer.sh", "status"]
- interval: 15s # 🚨 适当延长检查间隔,给集群选举留出时间
- timeout: 5s
- retries: 5 # 🚨 增加重试次数,防止因同伴未拉起被 Docker 误杀
- start_period: 20s # 🚨 给 20 秒宽限期
|