暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

Kafka2.8预览版发布,KIP-500基本落地干掉ZK依赖,目前不适用生产环境

大数据从业者 2021-04-20
1874

Kafka2.8.0版本于昨日(2021年4月19日)发布,该版本提供了KIP-500的早期访问版本,它允许您在没有apachezookeeper的情况下运行Kafka集群,而取代zookeeper的是Kafka内部实现的KRaft协议。这种新体系结构使每个集群支持更多分区、更简单的操作和更严格的安全性。需要特别强调的一点是;当前版本还不完善,不能用于生产环境。

KIP-500最早出现于2019年10月30号,JIRA记录见

https://issues.apache.org/jira/browse/KAFKA-9119

详细描述见

https://cwiki.apache.org/confluence/display/KAFKA/KIP-500%3A+Replace+ZooKeeper+with+a+Self-Managed+Metadata+Quorum

简单概括来讲,KIP-500主要是将原来存储在Zookeeper的元数据信息和配置信息从ZooKeeper迁移出来到一个名称为@metadata的新的内部主题中(类似于已有的用于存储消费者offset__consumer_offsets主题)。@metadata主题由“controllers”的内部仲裁管理,并复制到群集中的所有brokers节点。现在的集群中,Raft quorumleader扮演着与controller相同的角色。KIP-500中的节点可以充当controllerbroker或两者兼有,具体取决于新的配置项process.roles。有关快速启动说明和其他详细信息,请参阅README文件。

https://github.com/apache/kafka/blob/2.8/config/kraft/README.md

第一步:生成cluster ID

    $ ./bin/kafka-storage.sh random-uuid
    xtzWWN4bTjitpL3kfd9s5g

    第二步:格式化存目录

      $ ./bin/kafka-storage.sh format -t <uuid> -c ./config/kraft/server.properties
      Formatting tmp/kraft-combined-logs

      第三步:启动Kafka Server

        $ ./bin/kafka-server-start.sh ./config/kraft/server.properties
        [2021-02-26 15:37:11,071] INFO Registered kafka:type=kafka.Log4jController MBean (kafka.utils.Log4jControllerRegistration$)
        [2021-02-26 15:37:11,294] INFO Setting -D jdk.tls.rejectClientInitiatedRenegotiation=true to disable client-initiated TLS renegotiation (org.apache.zookeeper.common.X509Util)
        [2021-02-26 15:37:11,466] INFO [Log partition=@metadata-0, dir=/tmp/kraft-combined-logs] Loading producer state till offset 0 with message format version 2 (kafka.log.Log)
        [2021-02-26 15:37:11,509] INFO [raft-expiration-reaper]: Starting (kafka.raft.TimingWheelExpirationService$ExpiredOperationReaper)
        [2021-02-26 15:37:11,640] INFO [RaftManager nodeId=1] Completed transition to Unattached(epoch=0, voters=[1], electionTimeoutMs=9037) (org.apache.kafka.raft.QuorumState)
        ...

        如同基于zookeeper的Kafka Broker一样,你可以连接到9092端口,进行管理、生产、消费等相关操作。

          $ ./bin/kafka-topics.sh --create --topic foo --partitions 1 --replication-factor 1 --bootstrap-server localhost:9092
          Created topic foo.


          文章转载自大数据从业者,如果涉嫌侵权,请发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

          评论