安装:
版本:kafka_2.11-1.1.0
下载:wget https://archive.apache.org/dist/kafka/1.1.0/kafka_2.11‐1.1.0.tgz
zookeeper的版本:zookeeper-3.4.14
wget http://mirror.bit.edu.cn/apache/zookeeper/stable/zookeeper‐3.4.14.tar.gz
我已经安装好了,所以就不再介绍zookeeper怎么安装,后面我再单独写一篇关于zookeeper的博客,详细介绍安装和原理
kafka安装步骤:
1、解压 tar -zxvf kafka_2.11-1.1.0
2、vim config/server.properties(修改服务端配置文件)
官方给的基础配置其实就这三个
重要配置如下: broker.id=0 集群的broker节点
log.dirs= 日志的位置
log.retention.hours=168 数据保存的时间(168小时==7天)
zookeeper.connect=localhost:2181 zk的连接地址,可配置成集群,用逗号分隔即可
3、启动: bin/kafka-server-start.sh -daemon config/server.properties
已经安装好了,可以去zk上面看一下,会发现zk注册了很多新的节点信息,文章结尾有大概标注节点的含义
用命令的方式来试一下消息生产和消费
创建topic: bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 1 --partitions 1 --topic test
查看topic: bin/kafka-topics.sh -list --zookeeper ip:2181
删除topic:bin/kafka-topics.sh --delete --zookeeper ip:2181 --topic test
生产者生产:bin/kafka-console-producer.sh --broker-list ip:9092 --topic test
消费者消费: bin/kafka-console-consumer.sh --zookeeper ip:2181 --topic test
消费多个topic:bin/kafka-console-consumer.sh --bootstrap-server ip:9092 --whitelist "test|test2"
查询topic信息:bin/kafka-topics.sh --describe --zookeeper ip:2181
集群:
报错内存不足,out of memory
解决方法:修改kafka-server-start.sh,把默认启动内存大小从1G调成256M 128M
集群搭建好,创建一个topic,有三个分区,三个备份,查看具体信息如下:
Partition 表示对应的分区编号
leader 表示对当前分区,进行事物操作的节点
Replicas 表示有备份的节点(只要有备份都会显示,连接有问题都会展示)
Isr 表示存活的,正常同步备份的节点
测试数据发送:
创建topic:bin/kafka-topics.sh --create --zookeeper ip:2181 --replication-factor 3 --partitions 3 --topic test-cluster
生产消息(集群):bin/kafka-console-producer.sh --broker-list ip1:19092,ip2:19093,ip3:19094 --topic test-cluster
消费消息: bin/kafka-console-consumer.sh --zookeeper ip:2181 --topic test-cluster
消息正常发送接收,集群没问题
测试一下容错,任意kill一个节点,继续发送,虽然有WARN日志,但是消息正常发送接收
节点信息也发生变化:
创建命令其实不需要自己强记,kafka-topic.sh --help 即可查看
创建5分区2副本的topic:
创建3分区0副本的topic: 报错, Replication factor must be larger than 0.
集群搭建大概就是这样,zk上的注册信息大概看下
controller:注册broker的leader
brokers: 存了一些ids,topic等
admin: 管理的一些监听
consumers:消费者
还有一些注册的监听事件信息
关于kafka的一些原理性了解,可以看下我的另外一篇,也是一些个人理解。
https://blog.csdn.net/early_or_later/article/details/106307251