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
相关推荐
Tech Synapse1 小时前
Java根据前端返回的字段名进行查询数据的方法
java·开发语言·后端
.生产的驴1 小时前
SpringCloud OpenFeign用户转发在请求头中添加用户信息 微服务内部调用
spring boot·后端·spring·spring cloud·微服务·架构
微信-since811921 小时前
[ruby on rails] 安装docker
后端·docker·ruby on rails
运维&陈同学2 小时前
【zookeeper03】消息队列与微服务之zookeeper集群部署
linux·微服务·zookeeper·云原生·消息队列·云计算·java-zookeeper
代码吐槽菌3 小时前
基于SSM的毕业论文管理系统【附源码】
java·开发语言·数据库·后端·ssm
豌豆花下猫3 小时前
Python 潮流周刊#78:async/await 是糟糕的设计(摘要)
后端·python·ai
YMWM_3 小时前
第一章 Go语言简介
开发语言·后端·golang
BestandW1shEs3 小时前
彻底理解消息队列的作用及如何选择
java·kafka·rabbitmq·rocketmq
码蜂窝编程官方3 小时前
【含开题报告+文档+PPT+源码】基于SpringBoot+Vue的虎鲸旅游攻略网的设计与实现
java·vue.js·spring boot·后端·spring·旅游
天冬忘忧4 小时前
Kafka 生产者全面解析:从基础原理到高级实践
大数据·分布式·kafka