Centos7 安装kafka集群
软件版本
kafka_2.12-2.1.1
下载地址:
https://kafka.apache.org/downloads
1.安装zookeeper集群
2.将kafka下载完成后的安装包上传机器地址(地址自己定)
我的上传地址
1 | /usr/local/ |
3.解压Kafka
1 | cd /usr/local/<br><br>tar -zxvf kafka_2.12-2.1.1.tgz<br><br>mv kafka_2.12-2.1.1 kafka<br> |
4.创建日志文件 (可以选做,Kafka有自己默认的日志地址)
1 2 3 | cd kafka mkdir -p kafka-logs |
5.编辑Kafka启动配置文件
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 | # 唯一标识在集群中的ID broker.id=1 # broker 服务器要监听的地址及端口 listeners = PLAINTEXT: //192.168.0.166:9092 # 处理网络请求的最大线程数 num.network.threads=3 # 处理I/O请求的线程数 num.io.threads=8 #发送缓冲区buffer大小,数据不是一下子就发送的,先会存储到缓冲区到达一定的大小后在发送,能提高性能 socket.send.buffer.bytes=102400 # kafka接收缓冲区大小,当数据到达一定大小后在序列化到磁盘 socket.receive.buffer.bytes=102400 # 这个参数是向kafka请求消息或者向kafka发送消息的请请求的最大数,这个值不能超过java的堆栈大小 socket.request.max.bytes=104857600 # 消息日志存放的路径 log.dirs=/usr/local/kafka/kafka-logs # 默认的分区数,一个topic默认1个分区 num.partitions=1 # 启停时做日志恢复每个目录所需的线程数,采用RAID的时候可以增大该值 num.recovery.threads.per.data.dir=1 # 副本数或备份因子 offsets.topic.replication.factor=1 transaction.state.log.replication.factor=1 transaction.state.log.min.isr=1 ############################# Log Retention Policy ############################# log.retention.hours=168 log.segment.bytes=1073741824 log.retention.check.interval.ms=300000 ############################# Zookeeper ############################# # Zookeeper 集群. zookeeper.connect=192.168.0.166:2181,192.168.0.165:2181,192.168.0.167:2181 # Timeout in ms for connecting to zookeeper zookeeper.connection.timeout.ms=6000 ############################# Group Coordinator Settings #############################<br># 在开发测试环境下该值设置为0,保证启动后马上可以使用。但在生产环境下,可以自己选择一个适合时间单位毫秒(推荐3000-5000) group .initial.rebalance.delay.ms=0 |
我的主要配置是三项日志地址可以选做默认也可以:
1 2 3 4 | broker.id=1 listeners = PLAINTEXT: //192.168.0.166:9092 log.dirs=/usr/local/kafka/kafka-logs zookeeper.connect=192.168.0.166:2181,192.168.0.165:2181,192.168.0.167:2181 |
还有一些其他的配置可以设置
1 2 3 4 5 6 7 8 9 10 11 12 13 14 | # 在开发测试环境下该值设置为0,保证启动后马上可以使用。但在生产环境下,默认值3秒更适合 group .initial.rebalance.delay.ms=3000 # 默认为true,启用删除主题。如果此配置已关闭,则通过管理工具删除主题将不起作用 delete.topic.enable= true # 允许自动创建topic auto.create.topics.enable= true # 消息体的最大大小,单位是字节 message.max. byte =5242880 # 单个topic默认分区的replication个数,不能大于集群中broker的个数。 default .replication.factor=3 # replicas每次获取数据的最大字节数 replica.fetch.max.bytes=5242880 # 这个是对外提供的地址 , 当client请求到kafka时, 会分发这个地址 advertised.listeners=PLAINTEXT: //192.168.0.166:9092 |
6.将kafka拷贝到其他两台机器 (使用命令最方便使用其他的工具也可以)
1 2 3 | scp -r /usr/local/kafka root@192.168.0.165:/usr/local scp -r /usr/local/kafka root@192.168.0.167:/usr/local |
注意:如果是拷贝到其他两台的一定要修改的Kafka启动配置的文件
1 2 3 4 5 | broker.id=2 listeners = PLAINTEXT: //192.168.0.165:9092 broker.id=3 listeners = PLAINTEXT: //192.168.0.167:9092 |
7.启动(三台机器分别启动,友情提示一下zookeeper集群一定要在Kafka启动之前启动)
1 | cd /usr/local/kafka/bin/<br><br>./kafka-server-start.sh -daemon ../config/server.properties |
8.验证 (有Kafka了证明启动没有问题)
1 2 3 4 | [root@192 bin]# jps 3973 Jps 1958 QuorumPeerMain 2535 Kafka |
9.常使用的Kafka几个命令
1 2 3 4 5 6 7 8 9 | 查看集群状态:./kafka-topics.sh --describe --zookeeper 192.168.0.165:2181,192.168.0.166:2181,192.168.0.167:2181 查看主题列表:./kafka-topics.sh --list --zookeeper 192.168.0.165:2181,192.168.0.166:2181,192.168.0.167:2181 创建主题和消息:./kafka-console-producer.sh --broker-list 192.168.0.165:9092,192.168.0.166:9092,192.168.0.167:9092 --topic test 订阅主题和消息:./kafka-console-consumer.sh --bootstrap-server 192.168.0.165:9092,192.168.0.166:9092,192.168.0.167:9092 --topic test -- from -beginning 删除主题及消息:./kafka-topics.sh --delete --zookeeper 192.168.0.165:2181,192.168.0.166:2181,192.168.0.167:2181 --topic test |
10.安装kafka-manager(在其中一台安装执行,偏向于对kafka集群的管理,可不安装)(我没有安装)
kafka-manager下载地址:https://github.com/yahoo/kafka-manager
go big or go home -- facebook
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 阿里最新开源QwQ-32B,效果媲美deepseek-r1满血版,部署成本又又又降低了!
· AI编程工具终极对决:字节Trae VS Cursor,谁才是开发者新宠?
· 开源Multi-agent AI智能体框架aevatar.ai,欢迎大家贡献代码
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!