安装kafka
1.前置条件#
JDK1.8+
配置主机名和IP映射
2.ZK安装#
-
单机
1.安装目录:/usr/local/zookeeper
2.apache-zookeeper-3.6.3-bin.tar.gz上传到指定目录并解压
3.复制配置文件
cp zoo_sample.cfg zoo.cfg
4.配置文件详解
// Zookeeper 服务器之间或客户端与服务器之间维持心跳的时间间隔,也就是每个 tickTime 时间就会发送一个心跳。tickTime以毫秒为单位。
tickTime=2000
//集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。集群中的follower服务器(F)与leader服务器(L)之间初始连接时能容忍的最多心跳数(tickTime的数量)。
initLimit=10
//集群中的follower服务器与leader服务器之间请求和应答之间能容忍的最多心跳数(tickTime的数量)。
syncLimit=5
//Zookeeper保存数据的目录,默认情况下,Zookeeper将写数据的日志文件也保存在这个目录里。各个日志文件介绍:https://www.cnblogs.com/jxwch/p/6526271.html
dataDir=/tmp/zookeeper
//Zookeeper保存日志文件的目录。
dataLogDir
//客户端连接 Zookeeper 服务器的端口,Zookeeper 会监听这个端口,接受客户端的访问请求。
clientPort=2181
//服务器名称与地址:集群信息(服务器编号,服务器地址,LF通信端口,选举端口)
server.N=YYY:A:B
其中N表示服务器编号,YYY表示服务器的IP地址,A为LF通信端口,表示该服务器与集群中的leader交换的信息的端口。B为选举端口,表示选举新leader时服务器间相互通信的端口(当leader挂掉时,其余服务器会相互通信,选择出新的leader)。一般来说,集群中每个服务器的A端口都是一样,每个服务器的B端口也是一样。但是当所采用的为伪集群时,IP地址都一样,只能时A端口和B端口不一样。
下面是一个非伪集群的例子:
server.0=233.34.9.144:2008:6008
server.1=233.34.9.145:2008:6008
server.2=233.34.9.146:2008:6008
下面是一个伪集群的例子:
server.1=127.0.0.1:2007:3007
server.2=127.0.0.1:2008:3008
server.3=127.0.0.1:2009:30095.基本操作
启动:bin/zkServer.sh start conf/zoo.cfg
状态:bin/zkServer.sh status conf/zoo.cfg
停止:bin/zkServer.sh stop conf/zoo.cfg
重启:bin/zkServer.sh restart conf/zoo.cfg
-
集群
1.使用伪集群安装,将上述zoo.cfg配置文件复制3份
2.修改配置文件
dataDir:修改为对应目录
clientPort:修改为对应端口
添加如下配置:
server.1=127.0.0.1:2007:3007
server.2=127.0.0.1:2008:3008
server.3=127.0.0.1:2009:30093.为各个节点创建myid文件,文件所在目录为配置文件dataDir所配置的目录
vim dataDir/myid
里面的值与server.1对应
4.基本操作
启动:bin/zkServer.sh start conf/zoo.cfg
状态:bin/zkServer.sh status conf/zoo.cfg
停止:bin/zkServer.sh stop conf/zoo.cfg
重启:bin/zkServer.sh restart conf/zoo.cfg
3.Kafka安装#
- 集群
1.安装目录:/usr/local/kafka
2.kafka_2.13-3.1.0.tgz上传到指定目录并解压
3.修改配置文件 server.properties
broker.id=1
port=9092
listeners=PLAINTEXT://主机名:9092
log.dirs=/usr/local/software/kafka/kafka1/data
zookeeper.connect=127.0.0.1:2181,127.0.0.1:2182,127.0.0.1:2183
4.基本操作
启动:bin/kafka-server-start.sh -daemon config/server.properties
停止:bin/kafka-server-stop.sh
4.使用脚本进行topic管理#
1.创建topic:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --create --topic topic01 --partitions 3 --replication-factor 3
2.查看topic列表:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --list
3.详情:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --describe --topic topic01
4.修改:
先创建:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --create --topic topic02 --partitions 1 --replication-factor 1
修改分区数量:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --alter --topic topic02 --partitions 3
5.删除:bin/kafka-topics.sh --bootstrap-server ip:port,ip:port,ip:port --delete --topic topic02
6.订阅:bin/kafka-console-consumer.sh --bootstrap-server ip:port,ip:port,ip:port --topic topic01 --group g1 --property print.key=true --property print.value=true --property key.separator=,
7.生产:bin/kafka-console-producer.sh --bootstrap-server ip:port,ip:port,ip:port --topic topic01
8.消费组:
查看:bin/kafka-consumer-groups.sh --bootstrap-server ip:port,ip:port,ip:port --list g1
查看详情:bin/kafka-consumer-groups.sh --bootstrap-server ip:port,ip:port,ip:port --describe --group g1
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端