基于docker的kafka3.0集群配置(Kraft模式)

`简介`
Kafka3.0之前的架构:元数据在zookeeper中,运行时动态选举controller,由controller进行Kafka集群管理。
kraft模式架构:不再依赖zookeeper集群,而是用三台controller节点代替zookeeper,元数据保存在 controller中,
由controller直接进行Kafka集群管理。
`kraft架构的优势`
1、Kafka不再依赖外部框架,而是能够独立运行。
2、controller管理集群时,不再需要从zookeeper中先读取数据,集群性能上升。
3、由于不依赖zookeeper,集群扩展时不再受到zookeeper读写能力限制controller 不再动态选举,而是由配置文件规定。
这样我们可以有针对性的加强controller 节点的配置。
4、后续版本升级方便,不用和zookeeper一起维护。

1、环境描述

kafka1                        172.18.62.11                      jdk8、Kafka 
kafka2                        172.18.62.12                      jdk8、Kafka 
kafka3                        172.18.62.13                      jdk8、Kafka   

2、启动容器

dvr start kafka-1
dvr start kafka-2
dvr start kafka-3
docker ps

容器启动
3、下载安装包(截至目前最新kafka_2.13-3.2.1)

wget https://dlcdn.apache.org/kafka/3.2.1/kafka_2.13-3.2.1.tgz

4、解压安装包

tar xvf kafka_2.13-3.2.1.tgz

5、配置集群

vim /config/kraft/server.properties
kafka-1:

process.roles=broker, controller
#节点 ID
node.id=1
#controller 服务协议别名
controller.listener.names=CONTROLLER
#全 Controller 列表
controller.quorum.voters=controller.quorum.voters=1@172.18.62.11:9093,2@172.18.62.12:9093,3@172.18.62.13:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
#broker 服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker 对外暴露的地址
advertised.Listeners=PLAINTEXT://172.18.62.11:9092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka 数据存储目录
log.dirs=/tmp/kraft-combined-logs
kafka-2:

process.roles=broker, controller
#节点 ID
node.id=2
#controller 服务协议别名
controller.listener.names=CONTROLLER
#全 Controller 列表
controller.quorum.voters=controller.quorum.voters=1@172.18.62.11:9093,2@172.18.62.12:9093,3@172.18.62.13:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
#broker 服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker 对外暴露的地址
advertised.Listeners=PLAINTEXT://172.18.62.12:9092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka 数据存储目录
log.dirs=/tmp/kraft-combined-logs
kafka-3:

process.roles=broker, controller
#节点 ID
node.id=3
#controller 服务协议别名
controller.listener.names=CONTROLLER
#全 Controller 列表
controller.quorum.voters=controller.quorum.voters=1@172.18.62.11:9093,2@172.18.62.12:9093,3@172.18.62.13:9093
#不同服务器绑定的端口
listeners=PLAINTEXT://:9092,CONTROLLER://:9093
#broker 服务协议别名
inter.broker.listener.name=PLAINTEXT
#broker 对外暴露的地址
advertised.Listeners=PLAINTEXT://172.18.62.13:9092
#协议别名到安全协议的映射
listener.security.protocol.map=CONTROLLER:PLAINTEXT,PLAINTEXT:PLAINTEXT,SSL:SSL,SASL_PLAINTEXT:SASL_PLAINTEXT,SASL_SSL:SASL_SSL
#kafka 数据存储目录
log.dirs=/tmp/kraft-combined-logs
注:根据具体需求修改相应的IP和node.id即可

6、安装jdk8

#安装
apt-get install openjdk-8-jdk
#查看版本
jave -version

7、启动kafka服务

#分别启动三台服务,日志目录自定义即可
bin/kafka-server-start.sh config/kraft/server.properties >>/var/log/kafka.log &

8、测试

#创建topic
bin/kafka-topics.sh --create  --bootstrap-server 172.18.62.11:9092,172.18.62.12:9092,172.18.62.13:9092 --replication-factor 3 --partitions 3 --topic test

创建topic

#查看topic
bin/kafka-topics.sh --list  --bootstrap-server 172.18.62.11:9092,172.18.62.12:9092,172.18.62.13:9092

在这里插入图片描述

#生产
bin/kafka-console-producer.sh --bootstrap-server 172.18.62.11:9092,172.18.62.12:9092,172.18.62.13:9092 --topic test
#消费
bin/kafka-console-consumer.sh --bootstrap-server 172.18.62.11:9092,172.18.62.12:9092,172.18.62.13:9092 --topic test

生产
消费
消费

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值