Kafka抛弃Zookeeper后如何启动?

Kafaka如何下载

官网地址

目前Kafka最新的版本就是3.7.1

我们可以看到下面这两个版本信息?什么意思呢?

  • Scala 2.12 - kafka_2.12-3.7.1.tgz (asc, sha512)
  • Scala 2.13 - kafka_2.13-3.7.1.tgz (asc, sha512)
    我们应该知道,一个完整的Kafka实例,至少包含了3部分:
  • 生产者-Producer
  • Broker
  • 生产者-Consumer
    其中生产者和消费者是使用Java语言,Broker则是使用的Scala语言,这样是不是就明白了。2.12和2.13其实就是说的Scala的版本,3.7.1就是Kafka真正的正式版本号。

Kafka的安装

我们需要先保证我们的服务器安装了Java环境:

复制代码
java -version

下载kafka:
通过 -o 指定我们存放的路径

复制代码
wget -O /usr/local/kafka_2.13-3.7.1.tgz https://downloads.apache.org/kafka/3.7.1/kafka_2.13-3.7.1.tgz

解压:

复制代码
tar -zxvf  kafka_2.13-3.7.1.tgz

Kafka的配置和启动

小贴士
Kafka 是一种高吞吐量的分布式发布订阅消息系统,它可以处理消费者在网站中的所有动作流数据。
Kafka 在之前的版本中,如果没有ZooKeeper ,Kafka 将无法运行。

用过kafka 的开发者应该知道,每次启动kafka 服务时,都是需要先把Zookeeper 启动,然后启动kafka ,步骤相当繁琐。
Kafka 在在发布的2.8 版本里,让用户可在完全不需要ZooKeeper 的情况下运行Kafka ,该版本将依赖于ZooKeeper 的控制器改造成了基于Kafka RaftQuorm控制器(KRaft模式)。

通过ZooKeeper启动

查看配置文件:

复制代码
connect-console-sink.properties
connect-console-source.properties
connect-distributed.properties
connect-file-sink.properties
connect-file-source.properties
connect-log4j.properties
connect-mirror-maker.properties
connect-standalone.properties
consumer.properties
kraft
log4j.properties
producer.properties
server.properties
tools-log4j.properties
trogdor.conf
zookeeper.properties

1:修改ZooKeeper配置

复制代码
vim zookeeper.properties  
## 配置地址用于存放zookeeper数据存储位置,不存在会自动创建
dataDir=/usr/local/kafka_data/zookeeper_data

2:启动ZooKeeper

进入kafka的bin目录:

复制代码
#启动zookeeper
../bin/zookeeper-server-start.sh -daemon ./config/zookeeper.properties 
# 查看zookeeper进程是否启动  
ps -ef | grep zookeeper

3:启动Kafka

复制代码
vim ../config/server.properties  
#修改log.dirs地址
log.dirs=/usr/local/kafka_data/kafka_data
#启动Kafka
../bin/kafka-server-start.sh -daemon ../config/server.properties 
#通过jps命令可以查看是否启动成功,看到下面的结果表示我们的zookeeper和Kafka都启动成功了
[root@qingshan bin]# jps
7297 Jps
1592 QuorumPeerMain
7241 Kafka

查看启动log

如果执行启动命令之后,使用JPS命令没有看到Kafka的进程,则可能是启动失败了。可以到对应的路径下查看启动日志,路径替换为自己Kafka的路径下即可
/usr/local/kafka_2.13-3.7.1/bin/hs_err_pid***.log

KRaft模式下启动Kafka

打开我们Kafka的Config 目录下,有一个KRaft文件夹。
1:修改我们修改数据存储位置

复制代码
vim config/kraft/server.properties
log.dirs=/usr/local/kafka_data/kafka_KRaft_data

2:生成存储目录唯一ID

kafka的bin目录下有一个kafka-storage.sh文件

复制代码
./kafka-storage.sh random-uuid 
#结果
bxoRVvPvR0qjT307GQ6Gag

3:格式化存储目录

复制代码
# 将上一步生成的唯一ID替换成自己的,启动使用kraft下的配置文件
./kafka-storage.sh  format -t bxoRVvPvR0qjT307GQ6Gag   -c  /usr/local/kafka_2.13-3.7.1/config/kraft/server.properties

执行结果:


4:启动Kafka

复制代码
#执行启动命令。
./kafka-server-start.sh -daemon ../config/kraft/server.properties
相关推荐
汪子熙几秒前
Cursor 中代码库索引(codebase indexing)功能背后的核心技术实现原理
人工智能·后端
TCChzp2 分钟前
Kafka入门-生产者
分布式·kafka
weixin_4365250714 分钟前
Spring Boot 实现流式响应(兼容 2.7.x)
java·spring boot·后端
源码超级联盟20 分钟前
分享一个空指针的bug
java·后端
weixin_4293260927 分钟前
Spring Boot-面试题(52)
java·spring boot·后端
暴躁哥28 分钟前
Spring Boot 类加载机制深度解析
spring boot·后端·类加载机制
掘金狂热勇士1 小时前
PGM格式:一种简单而实用的灰度图像存储方案
后端
毅航1 小时前
Trae复刻Mybatis之旅(一):创建SqlSession会话,构建代理
后端·mybatis·trae
考虑考虑1 小时前
Springboot3.5.x版本actuator新属性
spring boot·后端·spring
计算机毕设定制辅导-无忧学长1 小时前
Kafka 快速上手:安装部署与 HelloWorld 实践(二)
分布式·kafka