Kafka入门到实战-第三弹

Kafka入门到实战

Kafka的KRaft mode

Apache Kafka Raft (KRaft)是在KIP-500中引入的一种共识协议,旨在消除Apache Kafka对ZooKeeper在元数据管理上的依赖。

官网地址

声明: 由于操作系统, 版本更新等原因, 文章所列内容不一定100%复现, 还要以官方信息为准

bash 复制代码
https://kafka.apache.org/

Kafka概述

Apache Kafka 是一个开源的分布式事件流平台,提供高性能数据管道、流分析、 数据集成和任务关键型应用程序。

Kafka的KRaft mode详细介绍

配置

  • 配置角色, 配置process.roles 属性
    • broker kafka服务实例

    • controller kafka控制器

      • 指定的Kafka服务器才能成为controller, zookeeper模式是都可能

      • 要么是活跃的, 要么是热备

      • 3个允许一个出故障, 5个允许2个出故障

      • 每个服务实例和控制器都必须设置controller.quorum.voters属性, id和服务器要对应. 此外, id不能重复

        bash 复制代码
        process.roles=controller
        node.id=1
        listeners=CONTROLLER://controller1.example.com:9093
        controller.quorum.voters=1@controller1.example.com:9093,2@controller2.example.com:9093,3@controller3.example.com:9093
    • broker,controller 既是控制器又是服务实例(生产环境不要这样设置)

    • 不设置 系统将默认使用"ZooKeeper模式"

储存工具

使用kafka-storage.sh random-uuid命令为新的集群生成一个集群ID。在使用kafka-storage.sh format命令对集群中的每个服务器进行格式化时,必须使用这个集群ID。

调试

  • kafka-metadata-quorum工具可以用来描述集群元数据分区的运行状态。

    bash 复制代码
      > bin/kafka-metadata-quorum.sh --bootstrap-server  broker_host:port describe --status
  • kafka-dump-log工具可以用来调试集群元数据目录的日志段和快照

    • 这个命令解码并打印第一个日志段中的记录

      bash 复制代码
      bin/kafka-dump-log.sh --cluster-metadata-decoder --files metadata_log_dir/__cluster_metadata-0/00000000000000000000.log
    • 这个命令解码并打印集群元数据快照中的记录

      bash 复制代码
       > bin/kafka-dump-log.sh --cluster-metadata-decoder --files metadata_log_dir/__cluster_metadata-0/00000000000000000100-0000000001.checkpoint
  • kafka-metadata-shell工具可以用来交互式地检查集群元数据分区的状态

    bash 复制代码
    > bin/kafka-metadata-shell.sh  --snapshot metadata_log_dir/__cluster_metadata-0/00000000000000000000.log
    >> ls /
    brokers  local  metadataQuorum  topicIds  topics
    >> ls /topics
    foo
    >> cat /topics/foo/0/data

部署注意事项

  • 角色设置为broker或controller,但不能同时设为两者
  • 一个Kafka集群应使用3个controller
  • 对于一般的Kafka集群,元数据日志目录的主内存5GB和硬盘空间5GB就足够了

缺失的功能

  • 支持具有多个存储目录的JBOD配置
  • 修改独立KRaft控制器上的某些动态配置

ZooKeeper到 KRaft迁移

  • 不建议生产这样做

更新计划

欲知后事如何, 请听下回分解

相关推荐
学者猫头鹰21 小时前
分布式事务实战教程
java·分布式
笨蛋不要掉眼泪1 天前
RabbitMQ消息队列:MQ的可靠性
分布式·rabbitmq·java-rabbitmq
zcmodeltech1 天前
农业教学实训沙盘物联网控制系统设计:基于STM32与Modbus RTU的“感知-控制-实训”一体化方案
分布式·stm32·嵌入式硬件·物联网
java1234_小锋1 天前
【免费】基于Spark实时交通流量分析与拥堵预测系统(Java版本+可视化大屏+Kafka+SpringBoot+Vue3) 锋哥原创出品,必属精品
java·大数据·spark·kafka·实时交通流量分析与拥堵预测
敲个大西瓜1 天前
Kafka一百道核心面试题
kafka
ACP广源盛139246256731 天前
GSV6155@ACP# Type-C 视频信号转换芯片:技术架构、工程痛点适配与落地场景分析
大数据·c语言·开发语言·人工智能·分布式·嵌入式硬件·架构
平行侠1 天前
校园分布式智算与模型对攻赛(DormMesh Clash)可行性分析
人工智能·分布式
后端观测站1 天前
第三篇:消息队列如何保证消息可靠性?
kafka·java-rocketmq
笨蛋不要掉眼泪2 天前
RabbitMQ消息队列:发送者的可靠性
java·分布式·rabbitmq
AAA@峥2 天前
Ceph 分布式文件系统 CephFS 实战指南
运维·分布式·ceph