一:学习地址:
1) Kafka官网:http://kafka.apache.org/
2) 下载地址:http://kafka.apache.org/downloads
3) 客户端库:https://cwiki.apache.org/confluence/display/KAFKA/Clients
4) librdkafka库:https://github.com/edenhill/librdkafka
二:Kafka 版本0.9后的变更及瓶颈
1 服务端增加了GroupCoordinator这个角色;
2 topic的offset信息由之前存储在zk上改为存储在一个特殊的topic(_consumer_offsets)中。
一般瓶颈:网卡(一般建议log压缩)
三:常见指令
创建Topic
kafka-topics --create --zookeeper 《zk地址端口》 --replication-factor 《副本数》 --partitions 《分区数》 --topic 《主题名称》
Eg:kafka-topics --create --zookeeper 100.11.211.91:2181 --replication-factor 1 --partitions 3 --topic alarm_car
kafka-topics --create --zookeeper 100.11.211.91:2181 --replication-factor 1 --partitions 3 --topic alarm_wifi
kafka-topics --create --zookeeper 100.11.211.91:2181 --replication-factor 1 --partitions 3 --topic alarm_face
理论原则:
1 分区数=目标吞吐量/max(一个topic时生产者吞吐量,一个topic时消费者吞吐量)
2 消费者组个数 = topic分区数
3 副本数量(ISR)
列出所有Topic
kafka-topics.sh --list --zookeeper 《zk地址端口》
Eg:kafka-topics --list --zookeeper 100.11.211.91:2181
删除Topic
1) kafka-topics.sh --zookeeper localhost:2181 --topic test --delete
2) kafka-topics.sh --zookeeper localhost:2181/kafka --topic test --delete
3) kafka-run-class.sh kafka.admin.DeleteTopicCommand --zookeeper localhost:2181 --topic test
查看Topic
kafka-topics.sh --describe --zookeeper 《zk地址端口》 --topic 《topic名称》
Eg:kafka-topics --describe --zookeeper 100.11.211.91:2181 --topic alarm_car
查看Topic下所有的数据明细:(建一个消费者从头开始将topic都消费一遍)
kafka-console-consumer --topic alarm_wifi --from-beginning --bootstrap-server 100.11.211.94:9092,100.11.211.95:9092,100.11.211.96:9092
增加Topic的partition数
kafka-topics.sh --zookeeper 《zk地址端口》 --alter --topic 《topic名称》--partitions 5
查看有哪些消费者Group
新版本:kafka-consumer-groups.sh --new-consumer --bootstrap-server 127.0.0.1:9292 --list
老版本:kafka-consumer-groups.sh --zookeeper 100.11.211.91:2181/kafka --list