-
请先访问阅读底部的kafka文档链接
一、部署模版
- 四台服务器实现,kafka集群
server=192.168.122.4
server=192.168.122.5
server=192.168.122.6
server=192.168.122.7
-
下载安装
wget http://mirror.bit.edu.cn/apache/kafka/2.1.0/kafka_2.12-2.1.0.tgz
tar -xf kafka_2.12-2.1.0.tgz -C /home/program
ln -s /home/program/kafka_2.12-2.1.0.tgz /home/xxb/kafka
mkdir /home/xxb/kafka-logs #配置文件使用
cd /home/xxb/kafka/config
cp server.properties{,.bak}
-
server.properties配置
1. broker.id=1
2. listeners=PLAINTEXT://192.168.122.1:9092
3. num.network.threads=3
4. num.io.threads=6
5. socket.send.buffer.bytes=102400
6. socket.receive.buffer.bytes=102400
7. log.dirs=/home/xxb/kafka-logs
8. num.partitions=4
9. num.recovery.threads.per.data.dir=1
10.log.retention.hours=48
11.log.segment.bytes=1073741824
12.log.roll.hours=1
13.log.retention.check.interval.ms=300000
14.zookeeper.connect=zk1-ip:2181,zk2-ip:2181,zk3-ip:2181
15.zookeeper.connection.timeout.ms=6000
16.auto.create.topics.enable=true
17.message.max.bytes=1000012
18.num.replica.fetchers=2
19.unclean.leader.election.enable=false
20.default.replication.factor=2
21. log.flush.interval.messages=10000
22. log.flush.interval.ms=1000
-
server.properties解释(数字对应)
1.服务器的broker id
2. 监听列表 - 监听逗号分隔的URL列表和协议。指定hostname为0.0.0.0 绑定到所有接口,将hostname留空则绑定到默认接口。合法的listener列表是:PLAINTEXT://myhost:9092,TRACE://:9091PLAINTEXT://0.0.0.0:9092, TRACE://localhost:9093
3. 服务器用于处理网络请求的线程数 cpu核数+1
4. 服务器用于执行网络请求的io线程数 cpu核数两倍,不超过三倍
5. socket服务的SO_SNDBUF缓冲区。如果是-1,则默认使用OS的。
6. socket服务的SO_RCVBUF缓冲区。如果是-1,则默认使用OS的。
7. 保存日志数据的目录
8. topic的默认分区数
9. 每个数据的目录线程数,用于启动时日志恢复和关闭时flush
10.删除日志文件保留的小时数
11.段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快
12.新建一个日志段的最大时间
13.日志清除程序检查日志是否满足被删除的频率
14.与zookeeper集群连接
15.zookeeper.connection.timeout.ms=6000,连接延迟
16.启用自动创建topic
17.服务器可以接收的消息的最大大小
18.从源broker复制消息的提取线程数。递增该值可提高follower broker的I/O的并发。配置多可以提高follower的I/O并发度,单位时间内leader持有跟多请求,相应负载会增大,需要根据机器硬件资源做权衡
19.是否启用不在ISR中的副本参与选举leader的最后的手段。这样做有可能丢失数据
20.自动创建topic的默认的副本数,一个备份数量为n的集群允许n-1个节点失败
21. 每当producer写入10000条消息时,刷数据到磁盘
22. 每间隔1秒钟时间,刷数据到磁盘
二、kafka部署
kafka1——192.168.122.4
-
按照模版部署
-
配置区别
broker.id=1
listeners=PLAINTEXT://192.168.122.4:9092
kafka2——192.168.122.5
-
按照模版部署
-
配置区别
broker.id=2
listeners=PLAINTEXT://192.168.122.5:9092
kafka3——192.168.122.6
-
按照模版部署
-
配置区别
broker.id=3
listeners=PLAINTEXT://192.168.122.6:9092
kafka4——192.168.122.7
-
按照模版部署
-
配置区别
broker.id=4
listeners=PLAINTEXT://192.168.122.7:9092
三、kafka操作
-
启动
cd kafka/bin
./kafka-server-start.sh config/server.properties &