Kafka 分区与副本 leader 做读写 follower作备份
consumer group 不能同时消费同一个分区
一个消费者可以消费多个topic
同一个组的消费者不能消费同一个分区的数据
1 cd kafka_2.12-2.2.0/
2 mkdir -p logs
3 cd config
4 vi server.properties
5 更改broker.id=0 唯一的
6 打开delete.topic.enable=true //是否能删除topic
7 log.dirs=前几步骤建立的logs //存放数据目录
8 zookeeper.connect=hadoop1:2181,hadoop2:2181,hadoop3:2181 //连接zookeeper
9 常用命令文件 在 cd bin 有启动文件 kafka-server-start.sh 停止工作文件kafka-server-stop.sh
10 与zookeeper一样一台一台的启动
11 kafka-console-consumer.sh与kafka-console-producer.sh是测试的时候用在控制台输出的
12 启动kafka过程 先启动zk
启动kafka集群每个节点执行 kafka/bin/kafka-server-start.sh kafka/config/server.properties
13 创建topic bin/kafka-topics.sh --zookeeper hadoop1:2181 --create --topic second -- artitions 3 --replication-factor 2
15 启动消费者 kafka/bin/kafka-console-consumer.sh --zookeeper hadoop1:2181 --topic first
或是 kafka/bin/kafka-console-consumer.sh --bootstrap-server hadoop1:9092 --topic first
16 查看kafka的topic有哪些bin/kafka-topics.sh --list --zookeeper hadoop1:2181
17 cd kafka_2.12-2.2.0/logs 里面有日志和分区
18 生产者生产数据 kafka/bin/kafka-console-producer.sh --broker-list hadoop1:9092 --topic first
19 查看某个Topic的详情 bin/kafka-topics.sh --zookeeper hadoop1:2181 --describe --topic first
Isr列是谁跟leader的
21 删除topic bin/kafka-topics.sh --delete --zookeeper hadoop1:2181 --topic first(topic名字
20 kafka副本的数据是主动去leader中去拉
副本数一定要小于broker节点数
当往一个不存在的topic里面写数据是,它会自动创建一个topic 分区和副本数根据config文件的配置决定
Producer写入方式:producer采用推push模式将详细发送到broker,每条消息都被追加append到分区partition中,属于顺序写磁盘 顺序写磁盘效率比随机些内存要高,保障kafka吞吐率
分区内有序
生产者往里写数据 有三个ack应答机制 0 1 all三个状态保证数据不丢失就用all
消费者的分区数与消费者组的消费者数相同
分区内部偏移量自己维护自己
消费者读取数据一个分区一个分区的读取,完全读取完一个在读取其他分区