§1 官网地址 & 下载
kafka 的服务端代码是 Scala 语言编写,上图红框处版本号是语言版本
§2 解压 & 安装
cd /opt/kafka
tar -zxvf kafka_xx-xx.tgz
安装后目录
- bin:命令
- config:配置
- libs:库
- LICENSE
- licenses
- NOTICE
- site-docs
§3 配置
server.properties
broker.id=0
host.name=192.168.X.XXX
port=9092
num.network.threads=3
num.io.threads=8
log.dirs=XXX
socket.send.buffer.bytes=102400
socket.receive.buffer.bytes=102400
socket.request.max.bytes=104857600
num.partitions=64
log.retention.hours=72
message.max.byte=5242880
default.replication.factor=2
replica.fetch.max.bytes=5242880
log.segment.bytes=1073741824
log.retention.check.interval.ms=300000
log.cleaner.enable=false
offsets.topic.replication.factor=3
zookeeper.connect=192.168.X.XXX:2181,192.168.X.XXX:2181,192.168.X.XXX:2181
auto.leader.rebalance.enable=true
配置项详解
broker.id=0
配置 broker 的唯一标志,严禁重复
log.dirs=/opt/kafka-logs
配置日志存储路径
zookeeper.connect=192.168.3.10:2181,192.168.3.11:2181,192.168.3.12:2181/zookeeper_node_name
配置 zookeeper 各个主机 ip、端口
其中的 /zookeeper_node_name
用于配置一个 zookeeper 节点,防止 kafka 的注册信息被打散在整个zookeeper 文件系统中,方便删除
producer.properties
配置项详解
batch.size
配置发送端消息批次的大小,默认 16K
linger.ms
配置消息发送时的最大等待时间,默认 0ms,即无延时
acks
- 0:不需要应答
- 1:leader 接受到消息后应答
- -1/all:二者等价,leader 和 ISR 队列中所有节点接收消息完毕后应答
producer.properties
配置项详解
配置环境变量
vim /etc/profile.d/my_env.sh
# KAFKA_HOME
export KAFKA_HOME=/opt/module/kafka
export PATH=$PATH:$KAFKA_HOME/bin
source /etc/profile
§4 启动/停止
指令启动
- 启动 Zookeeper
cd /opt/zookeeper
./zkServer.sh start
- 启动 Kafka
cd /opt/kafka
bin/kafka-server-start.sh -daemon config/server.properties
启动时,需要配置刚修改的 server.properties 文件以覆盖默认配置
脚本启动
#!/bin/bash
case $1 in
"start")
for i in ip1 ip2 ip3
do
echo "kafka ip1 starting"
ssh $i "/opt/zookeeperbin/kafka-server-start.sh -daemon /opt/zookeeperbin/config/server.properties"
done
;;
"stop")
for i in ip1 ip2 ip3
do
echo "kafka ip1 stoping"
ssh $i "/opt/zookeeperbin/kafka-server-stop.sh"
done
;;
esac