docker-compose1.yml 1.6 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344
  1. services:
  2. zookeeper:
  3. image: registry.cn-chengdu.aliyuncs.com/reghao/zookeeper:3.8.4
  4. restart: always
  5. container_name: zookeeper
  6. hostname: node211
  7. ports:
  8. - "2181:2181"
  9. - "2888:2888" # 🚨 集群必须暴露:原子广播端口
  10. - "3888:3888" # 🚨 集群必须暴露:Leader选举端口
  11. volumes:
  12. - /opt/docker/zookeeper/data:/data
  13. - /opt/docker/zookeeper/datalog:/datalog
  14. - /opt/docker/zookeeper/logs:/logs
  15. environment:
  16. ZOO_MY_ID: 1 # 🚨 机器1固定为 1
  17. # 🚨 核心:用双引号包裹的全局集群视图(三台机器此项完全一致)
  18. 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"
  19. ZOO_AUTOPURGE_PURGEINTERVAL: 24
  20. ZOO_AUTOPURGE_SNAPRETAINCOUNT: 5
  21. ZOO_LOG4J_PROP: "INFO, ROLLINGFILE"
  22. ZOO_LOG_MAXFILESIZE: "100MB"
  23. ZOO_LOG_MAXBACKUPINDEX: 10
  24. JVMFLAGS: "-Xms512m -Xmx512m"
  25. ZOO_MAX_CLIENT_CNXNS: 60
  26. deploy:
  27. resources:
  28. limits:
  29. cpus: '1.0'
  30. memory: 1G
  31. reservations:
  32. cpus: '0.5'
  33. memory: 512M
  34. logging:
  35. driver: "json-file"
  36. options:
  37. max-size: "100m"
  38. max-file: "3"
  39. healthcheck:
  40. test: ["CMD", "zkServer.sh", "status"]
  41. interval: 15s # 🚨 适当延长检查间隔,给集群选举留出时间
  42. timeout: 5s
  43. retries: 5 # 🚨 增加重试次数,防止因同伴未拉起被 Docker 误杀
  44. start_period: 20s # 🚨 给 20 秒宽限期