6.kafka3.x-kraft集群模式

kafka的kraft模式

以前的kafka元数据保存在zk上,运行动态选举controller,由controller进行对kafka的集群管理.

kraft模式,不在依赖zk集群,而是用三台controller节点代替zk,元数据保存在controller中,由controller直接对kafka集群进行管理

  • kafka不在依赖外部框架独立运行
  • controller管理集群时,不在从zk中先读取数据,集群性能提升
  • 不依赖zk,集群的拓展也不受zk读写能力限制
  • controller不在动态选举,而是由配置文件规定,可以有针对性的加强controller节点配置

使用kraft搭建集群

  1. 修改config/kraft/server.properties文件

    #kafka 的角色(controller 相当于主机、broker 节点相当于从机,主机类似 zk 功
    能)
    process.roles=broker, controller
    #节点 ID 注意其他机器需要修改不能重复
    node.id=1
    #controller 服务协议别名
    controller.listener.names=CONTROLLER
    #全 Controller 列表 node.id@IP:PORT
    controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093
    #不同服务器绑定的端口
    listeners=PLAINTEXT://:9092,CONTROLLER://:9093
    #broker 服务协议别名
    inter.broker.listener.name=PLAINTEXT
    #broker 对外暴露的地址 注意其他机器需要修改
    advertised.Listeners=PLAINTEXT://node2:9092
    #协议别名到安全协议的映射
    listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLA
    INTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
    #kafka 数据存储目录
    log.dirs=/usr/local/kafka/kafka_2.12-3.2.0/data
    
  2. 初始化集群数据目录

    1. 生成存储目录唯一ID bin/kafka-storage.sh random-uuid

    2. 用该 ID 格式化 kafka 存储目录(所有节点)

       bash bin/kafka-storage.sh format -t
      J7s9e8PPTKOO47PxzI39VA -c
      /usr/local/kafka/kafka_2.12-3.2.0/config/kraft/server.properties
      
  3. 启动kafka集群bin/kafka-server-start.sh -daemon config/kraft/server.properties

你可能感兴趣的:(kafka,kafka,java,分布式)