Kafka 集群 KRaft 模式搭建

去皮卡多  金牌会员 | 2024-9-11 19:16:21 | 来自手机 | 显示全部楼层 | 阅读模式
打印 上一主题 下一主题

主题 934|帖子 934|积分 2802

一、Kafka 集群 KRaft 介绍

Kafka的KRaft模式是一种新的元数据管理方式,旨在去除对ZooKeeper的依赖,使Kafka成为一个完全自包罗的体系。在Kafka的传统模式下,元数据管理依赖于ZooKeeper,这增加了摆设和运维的复杂性。为相识决这个问题,Kafka社区引入了KRaft模式。在KRaft模式下,所有的元数据,包括主题、分区信息、副本位置等,都被存储在Kafka集群内部的特别日志中。这个日志使用Raft协议来保证一致性。

在左边架构中,Kafka集群包罗多个 Broker 节点和一个ZooKeeper 集群。Kafka 集群的 Controller 在被选中后,会从 ZooKeeper 中加载它的状态。而且通知其他Broker发生变更,如 Leaderanddis r和 Updatemetdata 哀求。
右边新的架构中,三个 Controller 节点替换三个ZooKeeper节点。Controller节点和 Broker 节点运行在不同的进程中。Controller 节点中会选举出一个 Leader 脚色。而且Leader 不会主动向 Broker 推送更新,而是由 Broker 拉取元数据信息。
注意:Controller 进程与 Broker 进程在逻辑上是分离的,同时答应部门或所有 Controller 进程和 Broker 进程是同一个进程,即一个Broker节点即是Broker也是Controller。
下面主要实践下 Kafka 集群 KRaft 模式下的搭建。
二、Kafka 集群 KRaft 模式搭建

摆设规划如下:
hosthostnamerolenode id11.0.1.146node1Broker,Controller111.0.1.147node2Broker,Controller211.0.1.148node3Broker,Controller3 以下操纵三台呆板均需要执行。
设置 hosts :
  1. vi /etc/hosts
复制代码
  1. 11.0.1.146   node1
  2. 11.0.1.147   node2
  3. 11.0.1.148   node3
复制代码
下载安装包:
  1. wget https://archive.apache.org/dist/kafka/3.4.0/kafka_2.13-3.4.0.tgz
复制代码
解压:
  1. tar -zxvf kafka_2.13-3.4.0.tgz
复制代码
创建数据存储目次:
  1. cd kafka_2.13-3.4.0
  2. mkdir data
复制代码
修改 config/kraft/server.properties 设置文件,注意 node.id和 advertised.listeners 根据不同的呆板编码填写,主要修改内容如下:
  1. vi config/kraft/server.properties
复制代码
  1. process.roles=broker,controller
  2. node.id=1
  3. controller.quorum.voters=1@node1:9093,2@node2:9093,3@node3:9093
  4. listeners=PLAINTEXT://:9092,CONTROLLER://:9093
  5. inter.broker.listener.name=PLAINTEXT
  6. advertised.listeners=PLAINTEXT://node1:9092
  7. controller.listener.names=CONTROLLER
复制代码

天生集群唯一标志 ID,官方提供了 kafka-storage 工具可以天生唯一ID,也可以自己天生一个唯一的 ID:
  1. bin/kafka-storage.sh random-uuid
复制代码

使用唯一标志 ID 初始化存储路径:
  1. bin/kafka-storage.sh format -t cGuFZQ70Rf6OQFNMumq33g -c config/kraft/server.properties
复制代码

以 KRaft 模式启动服务:
  1. bin/kafka-server-start.sh -daemon config/kraft/server.properties
复制代码
观察日志是否启动乐成:
  1. tail -f logs/server.log
复制代码

三、情况测试

查看 Broker 情况:
  1. bin/kafka-broker-api-versions.sh --bootstrap-server node1:9092,node2:9092,node3:9092
复制代码

测试创建 topic :
  1. bin/kafka-topics.sh --create --topic test --partitions 3 --replication-factor 2 --bootstrap-server node1:9092,node2:9092,node3:9092
复制代码

查看 topic 的情况:
  1. bin/kafka-topics.sh --describe  --bootstrap-server node1:9092,node2:9092,node3:9092
复制代码

发送 Topic 消息测试:
  1. bin/kafka-console-producer.sh --broker-list node1:9092,node2:9092,node3:9092 --topic test
复制代码

斲丧者斲丧消息:
  1. bin/kafka-console-consumer.sh --bootstrap-server node1:9092,node2:9092,node3:9092 --topic test
复制代码


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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

正序浏览

快速回复

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

本版积分规则

去皮卡多

金牌会员
这个人很懒什么都没写!

标签云

快速回复 返回顶部 返回列表