kafka 3.7.0 先容,并以KRaft 模式举行docker构建镜像、运行 ...

打印 上一主题 下一主题

主题 1013|帖子 1013|积分 3039

前言

  如果您以为有用的话,记得给博主点个赞,批评,收藏一键三连啊,写作不易啊^ _ ^。
  而且听说点赞的人天天的运气都不会太差,着实白嫖的话,那接待常来啊!!!

kafka 3.7.0 先容,并以KRaft 模式举行docker构建镜像、运行

kafka 采用 3.7.0 版本;
jdk 采用 LTS JDK 8(长期支持8版本);
并以KRaft 模式启动。
注:kafka 3.7.0 版本不再必须依赖 Zookeeper。
KRaft 模式是 Kafka 从 2.8.0 版本引入的特性,允许 Kafka 集群在没有 Zookeeper 的情况下运行。
1. Kafka 3.7.0 主要新增特性


  • 去除对 Zookeeper 的依赖 (KRaft 模式加强) Kafka 3.7.0 继续推动 KRaft (Kafka Raft) 模式,即去除 Zookeeper 的模式。在 Kafka 2.8.0 版本中已经引入了 KRaft 模式的实验性支持,Kafka 3.7.0 进一步加强了这个模式的稳定性,并且鼓励用户利用 KRaft 模式。

    • 在 KRaft 模式下,Kafka 集群的元数据管理和协调工作由 Kafka 自身的 Raft 协议来完成,而不再依赖 Zookeeper。
    • KRaft 模式支持独立的 Kafka 集群管理和自我协调,简化了管理和运维。
    • 现在,KRaft 模式已经可以用于生产情况,并且会成为未来版本的标准模式。

  • 改善消费者和生产者的性能 Kafka 3.7.0 加强了 生产者和消费者的性能,特别是在高并发情况下的消息传输和处理能力。
  • 改进的数据压缩和存储优化

    • Kafka 3.7.0 对 数据存储和压缩算法举行了优化,提高了存储效率和处理速度。
    • 对日记压缩、数据存储格式等方面做了优化,有助于减少存储需求和提拔读写性能。

  • 加强的安全性特性

    • Kafka 3.7.0 引入了一些新的安全功能,包括对 SASL/OAUTHBEARER 的改进、改进的 ACL(访问控制列表)管理等。

  • 主题管理和流量控制的改进

    • 对 Kafka 的 主题管理和 流量控制举行了优化,加强了对多租户情况下的支持。

  • 更好的资源管理

    • Kafka 3.7.0 对集群的 资源管理和监控做了改进,提供了更多的指标和更细粒度的监控能力。

注:在利用 KRaft 模式(Kafka Raft 模式)时,不再需要 Zookeeper,若利用传统的 Zookeeper 模式(未启用 KRaft 模式),则 仍旧需要 Zookeeper 来举行集群元数据管理和协调。
2. 构建

2.1. 提前预备:


Dockerfile是构建用的
kafka_2.13-3.7.0.tgz 是我要摆设的版本
kraft-server.properties 是我需要用到的配置类
2.2. kraft-server.properties 内容

  1. # 设置 broker 的 ID
  2. broker.id=1
  3. # 设置 Kafka 的日志目录(即数据存储目录)
  4. log.dirs=/app/appuser/data
  5. # 设置监听器和端口,KRaft 模式的 Kafka 需要同时定义 broker 和 controller 的监听器
  6. listeners=PLAINTEXT://0.0.0.0:9092,CONTROLLER://0.0.0.0:9093
  7. # 设置 Kafka controller 的监听器名称
  8. controller.listener.names=CONTROLLER
  9. # 设置广告的 broker 地址
  10. advertised.listeners=PLAINTEXT://192.168.74.125:9092
  11. # 设置 controller quorum 的成员
  12. controller.quorum.voters=1@localhost:9093
  13. # 设置日志清理策略(如删除旧日志)
  14. log.cleanup.policy=delete
  15. # 设置日志切分大小
  16. log.segment.bytes=1073741824
  17. # 启用 Kafka 的 KRaft 模式
  18. process.roles=broker,controller
  19. # 开启 Kafka 支持的特性
  20. confluent.support.metrics.enable=false
复制代码
留意的是advertised.listeners 该配置用于指定Kafka外部访问的地点(客户端访问Kafka时会利用)。需要确保192.168.74.125:9092是可路由并且可达的IP地点。
2.3. Dockerfile 内容

  1. # 使用包含JDK 8 的基础镜像
  2. FROM yzy:v2.3
  3. MAINTAINER yangzhenyu
  4. # 设置 Kafka 版本
  5. ARG KAFKA_VERSION=3.7.0
  6. ARG SCALA_VERSION=2.13
  7. COPY kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz /app/appuser/
  8. # 配置 KRaft 模式的 Kafka server
  9. COPY kraft-server.properties /app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/config/
  10. # 下载并解压 Kafka
  11. RUN cd /app/appuser \
  12.     && mkdir data \
  13.     && tar -xzf kafka_${SCALA_VERSION}-${KAFKA_VERSION}.tgz \
  14.     # 格式化 Kafka 数据目录
  15.     && /app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-storage.sh random-uuid \
  16.     && /app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-storage.sh format -t $(/app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/bin/kafka-storage.sh random-uuid) -c /app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}/config/kraft-server.properties
  17. # 设置 Kafka 的环境变量
  18. ENV KAFKA_HOME=/app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}
  19. ENV PATH=$KAFKA_HOME/bin:$PATH
  20. # 暴露 Kafka 默认端口
  21. EXPOSE 9092
  22. # 设置工作目录
  23. WORKDIR /app/appuser/kafka_${SCALA_VERSION}-${KAFKA_VERSION}
  24. # 启动 Kafka
  25. CMD ["sh", "-c", "${KAFKA_HOME}/bin/kafka-server-start.sh ${KAFKA_HOME}/config/kraft-server.properties"]
复制代码
其中 yzy:v2.3 是我自己制作的私有基础镜像。
留意的是格式化 Kafka 数据目录,否则的话你会无法创建meta.properties等文件报错。

2.4. 构建镜像并运行

docker build -t yzy-kafka-3.7.0:v1.0 .
这里的 . 表现当前目录,是 Dockerfile 地点的目录路径。

查看镜像是否构建成功:

构建成功。
运行 Kafka 容器::
   docker run -d --name kafka -p 9092:9092 yzy-kafka-3.7.0:v1.0
  

此时,Kafka 会在不依赖 Zookeeper 的情况下启动,并运行在 KRaft 模式下。
验证 Kafka 是否正常工作:
   docker logs -n 10 kafka
  

   查看容器是否成功:
  

进入docker容器
   docker exec -it kafka /bin/bash
  

如果在其中过程中出现题目需要调试的话,可以进入镜像调试,下面是进入镜像的命令:
docker run -it yzy-kafka-3.7.0:v1.0 /bin/bash

免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。

本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?立即注册

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

宝塔山

论坛元老
这个人很懒什么都没写!
快速回复 返回顶部 返回列表