Zookeeper
1 新建 Zookeeper 目录,data 及log 目录
解释:conf 用于存放配置文件
Data 用于存放内存数据库的快照
Datalog : 用于存放数据库的事务日志
2 配置zoo.cfg
clientPort=2181 dataDir=/data dataLogDir=/datalog tickTime=2000 initLimit=5 syncLimit=3 autopurge.snapRetainCount=3 autopurge.purgeInterval=0 maxClientCnxns=30
配置参数解读
Zookeeper中的配置文件zoo.cfg中参数含义解读如下:
- tickTime =2000:通信心跳数,Zookeeper服务器与客户端心跳时间,单位毫秒
Zookeeper使用的基本时间,服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个tickTime时间就会发送一个心跳,时间单位为毫秒。
它用于心跳机制,并且设置最小的session超时时间为两倍心跳时间。(session的最小超时时间是2*tickTime) - initLimit =10:LF初始通信时限,集群中的Follower跟随者服务器与Leader领导者服务器之间初始连接时能容忍的最多心跳数(tickTime的数量),用它来限定集群中的Zookeeper服务器连接到Leader的时限。
- syncLimit =5:LF同步通信时限,集群中Leader与Follower之间的最大响应时间单位,假如响应超过syncLimit * tickTime,Leader认为Follwer死掉,从服务器列表中删除Follwer。
- dataDir:数据文件目录+数据持久化路径,主要用于保存Zookeeper中的数据。
- clientPort =2181:客户端连接端口,监听客户端连接的端口
3 镜像拉取并运行
3.1 下载镜像
docker pull zookeeper:3.7
3.2 运行镜像
docker run --name zookeeper -p 2181:2181 --restart always -v /root/zookeeper/data:/data -v /root/zookeeper/datalog:/datalog -v /root/zookeeper/conf/zoo.cfg:/conf/zoo.cfg -e JVMFLAGS="-Xmx256m" -d zookeeper:3.7
命令解释:
- –restart always :启动docker 时启动zookeeper
- -v /root/zookeeper/data:/data 映射快照数据
- -v /root/zookeeper/datalog:/datalog 映射数据
- -v /root/zookeeper/conf:/conf 映射配置文件
- -e JVMFLAGS="-Xmx256m" 设置jvm 的大小
- -d 后台运行
- zookeeper:3.7 :zookeeper 版本
3.3 使用命令进入到容器内
docker exec -it zookeeper /bin/bash
进入bin 目录
cd bin
连接zookeeper
kClinet.sh
参考 :https://registry.hub.docker.com/_/zookeeper
Kafka
1 创建kafka的配置文件及数据文件夹:
mkdir -p /root/kafka/logs/kafka-logs mkdir -p /root/kafka/serverjaas
- kafka-logs:用作存放数据
- serverjaas:用作存放配置文件
2 配置kafka登录账号:
cd /root/kafka/serverjaas touch kafka_server_jaas.conf vim kafka_server_jaas.conf
放入账号密码:
KafkaServer { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345678" user_admin="12345678"; }; KafkaClient { org.apache.kafka.common.security.plain.PlainLoginModule required username="admin" password="12345678"; };
- KafkaServer 配置服务端的连接账号
- KafkaClient 配置客户端的连接账号
3 运行容器:
docker run --name kafka -p 9092:9092 --restart always -e KAFKA_BROKER_ID=0 -e KAFKA_AUTO_CREATE_TOPICS_ENABLE=false -e KAFKA_ZOOKEEPER_CONNECT=zookeeper-ip:2181 -e KAFKA_ADVERTISED_LISTENERS=SASL_PLAINTEXT://kafka机器公网ip:9092 -e KAFKA_LISTENERS=SASL_PLAINTEXT://0.0.0.0:9092 -e KAFKA_SECURITY_INTER_BROKER_PROTOCOL=SASL_PLAINTEXT -e KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN -e KAFKA_AUTHORIZER_CLASS_NAME=kafka.security.auth.SimpleAclAuthorizer -e KAFKA_SASL_ENABLED_MECHANISMS=PLAIN -e KAFKA_SUPER_USERS=User:admin -e KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND=false -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 -e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0 -e KAFKA_OPTS=-Djava.security.auth.login.config=/opt/kafka/secrets/kafka_server_jaas.conf -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" -v /etc/localtime:/etc/localtime -v /root/kafka/logs/kafka-logs/:/kafka/logs -v /root/kafka/serverjaas/kafka_server_jaas.conf:/opt/kafka/secrets/kafka_server_jaas.conf -d docker.io/wurstmeister/kafka:2.12-2.5.0
参数解释:
- –restart always : 重启docker 时重启kafka服务
- -e KAFKA_BROKER_ID=0 : kafka服务节点id
- -e KAFKA_AUTO_CREATE_TOPICS_ENABLE=false 是否可以自动创建节点
- -e KAFKA_ZOOKEEPER_ConNECT=zookeeper-ip:2181 连接zookeeper 的地址
- -e KAFKA_ADVERTISED_LISTENERS=PLAINTEXT://公网ip:9092 kafka 对外地址
- -e KAFKA_LISTENERS=PLAINTEXT://0.0.0.0:9092
- -e KAFKA_SECURITY_INTER_BROKER_PROTOCOL=SASL_PLAINTEXT :表示Broker间通信使用SASL
- -e KAFKA_SASL_MECHANISM_INTER_BROKER_PROTOCOL=PLAIN 表示Broker间通信使用PLAIN
-e KAFKA_AUTHORIZER_CLASS_NAME=kafka.security.auth.SimpleAclAuthorizer :认证实现类
-e KAFKA_SASL_ENABLED_MECHANISMS=PLAIN :表示开启PLAIN认证机制 sasl - -e KAFKA_SUPER_USERS=User:admin 设置超级用户
- -e KAFKA_ALLOW_EVERYONE_IF_NO_ACL_FOUND=false :对所有用户topic可见,要禁用
- -e KAFKA_OFFSETS_TOPIC_REPLICATION_FACTOR=1 :MirrorMaker内部偏移同步主题的复制因子(默认值:3)
- -e KAFKA_GROUP_INITIAL_REBALANCE_DELAY_MS=0: 消费组接收到成员加入后开启的rebalance推迟时间
- -e KAFKA_HEAP_OPTS="-Xmx256M -Xms128M" jvm 内存设置
- -v /etc/localtime:/etc/localtime 设置容器始终和宿主机保持一致
- -v /root/kafka/logs/kafka-logs/:/kafka/logs 数据持久化
- -d docker.io/wurstmeister/kafka:2.12-2.5.0
参考:
https://registry.hub.docker.com/r/wurstmeister/kafka/tags
https://www.jianshu.com/p/d77149efa59f
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)