栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Java

Kafka学习笔记

Java 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Kafka学习笔记

Kafka学习笔记

参加拉勾教育大数据训练营课程笔记

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
转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/361903.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号