阿里云轻量服务器--Docker--Zookeeper&Kafka安装

阿里云轻量服务器--Docker--Zookeeper&Kafka安装,第1张

阿里云轻量服务器--Docker--Zookeeper&Kafka安装

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

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5679122.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存