1. 介绍 2. 架构 3. 核心概念参加拉勾教育大数据训练营课程笔记
心跳
4. 环境搭建参考集群安装文档。
4. 生产与消费 5. 集成Kafka到SpringBoot 6. 生产者 - 数据生产流程 6.1 生产者原理 6.2 生产者参数 6.3 序列化和反序列化 6.4 分区器 6.5 拦截器 (producer intercepter, consumer intercepter) 7. 消费者 7.1 消费组 7.2 消费者参数 7.3 订阅 7.4 位移提交_consumer_offsets
7.5 位移管理 7.6 消费组偏移量 7.7 分区分配策略(partition assignor) RangeAssignor RoundRobinAssignor StickyAssignor 自定义分配策略import org.apache.kafka.clients.consumer.internals.AbstractPartitionAssignor;
import org.apache.kafka.common.TopicPartition;
import java.util.*;
public class MyAssignor extends AbstractPartitionAssignor {
}
properties.put(ConsumerConfig.PARTITION_ASSIGNMENT_STRATEGY_CONFIG, MyAssignor.class.getName());再平衡 7.8 消费者拦截器 7.9 消费组管理 8. 管理 主题管理 分区副本分配 分区副本机制 Leader分区选举 分区重分配(扩展)
kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file topics-to-move.json --broker-list "0,1" --generate kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file topics-to-move.json --broker-list "0,1" --execute kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file topics-to-move.json --broker-list "0,1" --verify偏好分区leader
按初始设置的relica assignment重新分配。创建topic时指定leader, follower。
# 三台机器,三个分区, # 0:1:2 0分区为leader副本,1和2是follower副本 kafka-topics.sh --zookeeper node1:2181/kafka --create --topic demo3 --replica-assignment "0:1:2,1:0:2,2:1:0" # 当一台机器宕机,分区再平衡 # 恢复宕机机器,执行kafka-peferred-replica-election.sh,将恢复到创建topic时指定的leader kafka-peferred-replica-election.sh --zookeeper node1:2181/kafka
也可以指定偏好的配置文件
kafka-peferred-replica-election.sh --zookeeper node1:2181/kafka --path-to-json-file preferred-replica-election.json
{
"partitions":[
{
"topic": "foo", "partition": 1
},
{
"topic": "bar", "partition": 2
}
]
}
分区副本因子
一个副本一台服务器,使用kafka-reassign-partitions.sh设置
{
"version":1,
"partitions":[
{"topic":"tp_re_02","partition":0,"replicas":[0,1]},
{"topic":"tp_re_02","partition":1,"replicas":[0,1]},
{"topic":"tp_re_02","partition":2,"replicas":[1,0]}
]
}
kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file partition.json --broker-list "0,1" --generate kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file partition.json --broker-list "0,1" --execute kafka-reassign-partitions.sh --zookeeper node1:2181/kafka --topics-to-move-json-file partition.json --broker-list "0,1" --verify主题参数 KafkaAdminClient
151 9824 0134
9. 物理存储稀疏索引构建
*.index - 消息偏移量对物理地址映射
*.timeindex - 消息偏移量时间映射
*.log - 第一条消息的偏移量为文件名
leader-epoch-checkpoint
索引文件切割
日志索引 Log Segment 日志清理 零拷贝机制mmap,sendfile实现零拷贝
10. 事物 幂等性(idempotence) 11. 集群控制器(broker) 12. 一致性 13. 消息重复 延迟队列 重试队列 监控指标(JMX) 编程获取监控指标 监控工具-Kafka Eagle


