Kaynağa Gözat

update ha/zookeeper

reghao 3 hafta önce
ebeveyn
işleme
6130be4ad9

+ 24 - 0
ha/zookeeper/conf/zoo.cfg

@@ -0,0 +1,24 @@
+# 心跳时间间隔(毫秒)
+tickTime=2000
+# Leader和Follower初始连接时能容忍的心跳数
+initLimit=10
+# Leader和Follower同步数据时能容忍的心跳数
+syncLimit=5
+
+# 数据和日志目录
+dataDir=/data
+dataLogDir=/datalog
+
+# 客户端连接端口
+clientPort=2181
+# 单个客户端最大连接数
+maxClientCnxns=60
+
+# 自动清理快照和事务日志
+autopurge.purgeInterval=24
+autopurge.snapRetainCount=5
+
+# 🚨 三节点集群拓扑(直接写死在配置文件里,绝对不会解析错)
+server.1=192.168.0.211:2888:3888
+server.2=192.168.0.212:2888:3888
+server.3=192.168.0.213:2888:3888

+ 5 - 18
ha/zookeeper/docker-compose1.yml

@@ -6,23 +6,16 @@ services:
     hostname: node211
     ports:
       - "2181:2181"
-      - "2888:2888" # 🚨 集群必须暴露:原子广播端口
-      - "3888:3888" # 🚨 集群必须暴露:Leader选举端口
+      - "2888:2888"
+      - "3888:3888"
     volumes:
       - /opt/docker/zookeeper/data:/data
       - /opt/docker/zookeeper/datalog:/datalog
       - /opt/docker/zookeeper/logs:/logs
+      # 🚨 核心:将宿主机写好的配置文件直接挂载进容器,跳过镜像脚本初始化
+      - /opt/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg
     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:
@@ -35,10 +28,4 @@ services:
       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 秒宽限期
+        max-file: "3"

+ 2 - 17
ha/zookeeper/docker-compose2.yml

@@ -1,5 +1,3 @@
-version: '3.8'
-
 services:
   zookeeper:
     image: registry.cn-chengdu.aliyuncs.com/reghao/zookeeper:3.8.4
@@ -14,16 +12,9 @@ services:
       - /opt/docker/zookeeper/data:/data
       - /opt/docker/zookeeper/datalog:/datalog
       - /opt/docker/zookeeper/logs:/logs
+      - /opt/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg # 🚨 挂载
     environment:
-      ZOO_MY_ID: 2  # 🚨 机器2改为 2
-      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:
@@ -36,10 +27,4 @@ services:
       driver: "json-file"
       options:
         max-size: "100m"
-        max-file: "3"
-    healthcheck:
-      test: ["CMD", "zkServer.sh", "status"]
-      interval: 15s
-      timeout: 5s
-      retries: 5
-      start_period: 20s
+        max-file: "3"

+ 2 - 15
ha/zookeeper/docker-compose3.yml

@@ -12,16 +12,9 @@ services:
       - /opt/docker/zookeeper/data:/data
       - /opt/docker/zookeeper/datalog:/datalog
       - /opt/docker/zookeeper/logs:/logs
+      - /opt/docker/zookeeper/conf/zoo.cfg:/conf/zoo.cfg # 🚨 挂载
     environment:
-      ZOO_MY_ID: 3  # 🚨 机器3改为 3
-      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:
@@ -34,10 +27,4 @@ services:
       driver: "json-file"
       options:
         max-size: "100m"
-        max-file: "3"
-    healthcheck:
-      test: ["CMD", "zkServer.sh", "status"]
-      interval: 15s
-      timeout: 5s
-      retries: 5
-      start_period: 20s
+        max-file: "3"

+ 5 - 0
ha/zookeeper/init_node1.sh

@@ -9,6 +9,11 @@ fi
 
 mkdir -p ${base_dir}/data
 mkdir ${base_dir}/datalog
+mkdir ${base_dir}/conf
+mkdir ${base_dir}/logs
 chmod -R go+w ${base_dir}
 
+cp conf/zoo.cfg ${base_dir}/conf
+echo "1" > /opt/docker/zookeeper/data/myid
+
 docker compose -f docker-compose1.yml up -d

+ 5 - 0
ha/zookeeper/init_node2.sh

@@ -9,6 +9,11 @@ fi
 
 mkdir -p ${base_dir}/data
 mkdir ${base_dir}/datalog
+mkdir ${base_dir}/conf
+mkdir ${base_dir}/logs
 chmod -R go+w ${base_dir}
 
+cp conf/zoo.cfg ${base_dir}/conf
+echo "2" > /opt/docker/zookeeper/data/myid
+
 docker compose -f docker-compose2.yml up -d

+ 5 - 0
ha/zookeeper/init_node3.sh

@@ -9,6 +9,11 @@ fi
 
 mkdir -p ${base_dir}/data
 mkdir ${base_dir}/datalog
+mkdir ${base_dir}/conf
+mkdir ${base_dir}/logs
 chmod -R go+w ${base_dir}
 
+cp conf/zoo.cfg ${base_dir}/conf
+echo "3" > /opt/docker/zookeeper/data/myid
+
 docker compose -f docker-compose3.yml up -d