基于docker搭建Kafka集群,使用KRaft方式搭建,摒弃Zookeeper ...

打印 上一主题 下一主题

主题 1015|帖子 1015|积分 3045

KAFKA基于docker使用KRaft进行集群搭建

环境:已成功搭建kafka服务 可点击链接跳转至安装kafka-3.8.0版本 并启用SASL认证 教程
使用基于Zookeeper方式搭建集群教程
kafka-3.8.0版本 并启用SASL认证 教程
搭建kafka-ui可视化工具
192.168.2.91 192.168.2.92 192.168.2.93
一、创建kafka集群节点192.168.2.91

(1)进入kafka/config/
(2)修改server.properties
KRaft模式集群节点

node.id=91
KRaft模式集群是否开启分区选举

auto.leader.rebalance.enable=true
KRaft模式集群 认证授权列表

listener.security.protocol.map=CONTROLLERLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KRaft模式集群 监听所有连接kafka及Kraft请求

listeners=SASL_PLAINTEXT://0.0.0.0:19092,CONTROLLER://0.0.0.0:19093
KRaft模式集群 第三方服务器访问kafka以及Kraft地址

advertised.listeners=SASL_PLAINTEXT://192.168.2.91:19092,SASL_PLAINTEXT://172.17.0.1:19092,CONTROLLER://192.168.2.91:19093,CONTROLLER://172.17.0.1:19093
集群中当前节点角色 即可作为broker 也可作为控制器controller

process.roles=broker,controller
集群中 相互发现的ip列表

controller.quorum.voters=91@192.168.2.91:19093,92@192.168.2.92:19093,93@192.168.2.93:19093
controller.listener.names=CONTROLLER
下图为代码中的kafka.properties

二、创建kafka集群节点192.168.2.92

(1)进入kafka/config/
(2)修改server.properties
KRaft模式集群节点

node.id=92
KRaft模式集群是否开启分区选举

auto.leader.rebalance.enable=true
#KRaft模式集群 认证授权列表

listener.security.protocol.map=CONTROLLERLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KRaft模式集群 监听所有连接kafka及Kraft请求

listeners=SASL_PLAINTEXT://0.0.0.0:19092,CONTROLLER://0.0.0.0:19093
KRaft模式集群 监听kafka及Kraft请求 第三方服务器访问kafka地址

advertised.listeners=SASL_PLAINTEXT://192.168.2.92:19092,SASL_PLAINTEXT://172.17.0.1:19092,CONTROLLER://192.168.2.92:19093,CONTROLLER://172.17.0.1:19093
集群中当前节点角色 即可作为broker 也可作为控制器controller

process.roles=broker,controller
集群中 相互发现的ip列表

controller.quorum.voters=91@192.168.2.91:19093,92@192.168.2.92:19093,93@192.168.2.93:19093
controller.listener.names=CONTROLLER

三、创建kafka集群节点192.168.2.93

(1)进入kafka_2.13-3.8.0_1/config/
(2)修改server.properties
KRaft模式集群节点

node.id=93
KRaft模式集群是否开启分区选举

auto.leader.rebalance.enable=true
KRaft模式集群 认证授权列表

listener.security.protocol.map=CONTROLLERLAINTEXT,SASL_PLAINTEXT:SASL_PLAINTEXT
KRaft模式集群 监听所有连接kafka及Kraft请求

listeners=SASL_PLAINTEXT://0.0.0.0:19092,CONTROLLER://0.0.0.0:19093
KRaft模式集群 监听kafka及Kraft请求 第三方服务器访问kafka地址

advertised.listeners=SASL_PLAINTEXT://192.168.2.93:19092,SASL_PLAINTEXT://172.17.0.1:19092,CONTROLLER://192.168.2.93:19093,CONTROLLER://172.17.0.1:19093
集群中当前节点角色 即可作为broker 也可作为控制器controller

process.roles=broker,controller
集群中 相互发现的ip列表

controller.quorum.voters=91@192.168.2.91:19093,92@192.168.2.92:19093,93@192.168.2.93:19093
controller.listener.names=CONTROLLER
下图为代码中的kafka.properties

四、配置192.168.2.91节点clientID 其中GuihyzOEQ3ulmBRdr6DVDA是我自己生成的集群ID 可通过UUID的方式自己生成

使用命令进入当前服务器的kafka容器中
(1)docker exec -it 容器ID bash
(2)cd 容器kafka/bin
(3)./kafka-storage.sh format -t GuihyzOEQ3ulmBRdr6DVDA -c …/config/server.properties
(4)重启当前kafka 容器
五、配置192.168.2.92。192.168.2.93节点clientID

内容如 四;
六、验证是否成功

方式一 直接使用命令
进入容器kafka/bin,启动生产者 连接19092端口,发送消息

进入其他节点的容器kafka/bin,启动斲丧者 接收19092端口消息,可以看到其他节点发送的消息 该斲丧者均可接收到
方式二 使用kafka-ui
附录:错误办理
假如遇到这个错误则进入 配置文件中配置 log.dirs 目录进行chmod -R 777 log.dirs设置的目录

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

本帖子中包含更多资源

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

x
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

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

本版积分规则

没腿的鸟

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