环境准备
三台CentOS 7系统
JDK 1.8
zookeeper集群(安装教程)
1、下载Kafka
wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11-1.1.0.tgz
2、安装Kafka
tar -zxf kafka_2.11-1.1.0.tgz
3、参数配置
vi kafka_2.12-1.1.0/config/server.properties
broker.id=1 //所有集群服务器的配置都要不同
listeners=PLAINTEXT://192.168.2.188:9092 #每台服务器的ip和Kafka开启的端口
zookeeper.connect= zk1:2181, zk2:2181, zk3:2181 #zookeeper集群示例配置
4、性能优化
vi kafka_2.12-1.1.0/config/server.properties
可以修改下面的参数:
# broker处理消息的最大线程数(默认为3)
# 查看linux CPU核数命令:
# cat /proc/cpuinfo| grep "physical id"| sort| uniq| wc -l
num.network.threads=CPU核数+1
# broker处理磁盘IO的线程数
num.io.threads=CPU核数*2
# 每当producer写入10000条消息时,刷数据到磁盘
log.flush.interval.messages=10000
# 每间隔1秒钟时间,刷数据到磁盘
log.flush.interval.ms=1000
# 日志保留三天,也可以更短 (log.cleaner.delete.retention.ms)
log.retention.hours=72
# 段文件配置1GB,有利于快速回收磁盘空间,重启kafka加载也会加快(如果文件过小,则文件数量比较多,kafka启动时是单线程扫描目录(log.dir)下所有数据文件
log.segment.bytes=1073741824
# Replica相关配置,这个参数指新创建一个topic时,默认的Replica数量,Replica过少会影响数据的可用性,太多则会白白浪费存储资源,一般建议在2~3为宜
default.replication.factor:3
5、启动Kafka
kafka_2.12-1.1.0/bin/kafka-server-start.sh -daemon kafka_2.12-1.1.0/config/server.properties
6、测试安装
可以对Kafka做一些简单的操作来验证它是否安装成功,比如创建一个测试主题,发布一些消息,然后读取它们
创建topic–test
cd kafka_2.12-1.1.0/bin
./kafka-topics.sh --create --zookeeper zk1:2181,zk2:2181,zk3:2181 --replication-factor 3 --partitions 3 --topic test
删除主题
./kafka-topics.sh --delete --zookeeper zk1:2181,zk2:2181,zk3:2181 --topic test
主题列表
./kafka-topics.sh --list --zookeeper zk1:2181,zk2:2181,zk3:2181
创建生产者
./kafka-console-producer.sh --broker-list 192.168.2.189:9092,192.168.2.188:9092,192.168.2.135:9092 --topic test
创建消费者
./kafka-console-consumer.sh --zookeeper 192.168.21.189:2180,192.168.2.188:2180,192.168.2.135:2181 --from-beginning --topic test