你真的需要分布式锁吗?
用到分布式锁说明遇到了多个进程共同访问同一个资源的问题。一般是在两个场景下会防止对同一个资源的重复访问:
-
**提高效率。**比如多个节点计算同一批任务,如果某个任务已经有节点在计算了,那其他节点就不用重复计算了,以免浪费计算资源。不过重复计算也没事,不会造成其他更大的损失。也就是允许偶尔的失败。
-
**保证正确性。**这种情况对锁的要求就很高了,如果重复计算,会对正确性造成影响。这种不允许失败。
引入分布式锁势必要引入一个第三方的基础设施,比如 MySQL,Redis,Zookeeper 等。这些实现分布式锁的基础设施出问题了,也会影响业务,所以在使用分布式锁前可以考虑下是否可以不用加锁的方式实现?不过这个不在本文的讨论范围内,本文假设加锁的需求是合理的,并且偏向于上面的第二种情况,为什么是偏向?因为不存在 100% 靠谱的分布式锁,看完下面的内容就明白了。
一、对Kafka的认识
1.Kafka的基本概念
2.安装与配置
3.生产与消费
4.服务端参数配置
二、生产者
1.客户端开发
- 必要的参数配置
- 消息的发送
- 序列化
- 分区器
- 生产者拦截器
2.原理分析
- 整体架构
- 元数据的更新
3.重要的生产者参数
三、消费者
1.消费者与消费组
2.客户端开发
- 必要的参数配置
- 订阅主题与分区
- 反序列化
- 消息消费
- 位移提交
- 控制或关闭消费
- 指定位移消费
- 再均衡
- 消费者拦截器
- 多线程实现
- 重要的消费者参数
四、主题与分区
1.主题的管理
- 创建主题
- 分区副本的分配
- 查看主题
- 修改主题
- 配置管理
- 主题端参数
- 删除主题
2.初识KafkaAdminCilent
- 基本使用
- 主题合法性验证
3.分区的管理
- 优先副本的选举
- 分区重分配
- 复制限流
- 修改副本因子
4.如何选择合适的分区数
- 性能测试工具
- 分区数越多吞吐量就越高吗
- 分区数的上限
- 考量因素
五、日志存储
1.文件目录布局
2.日志格式的演变
- v0版本
- v1版本
- 消息压缩
- 变长字段
- v2版本
3.日志索引
- 偏移量索引
- 时间戳索引
4.日志清理
- 日志删除
- 日志压缩
5.磁盘存储
- 页缓存
- 磁盘I/O流程
- 零拷贝
六、深入服务端
1.协议设计
2.时间轮
3.延时操作
4.控制器
5.参数解密
七、深入客户端
1.分区分配策略
2.消费者协调器和组协调器
3._consumer_offsets剖析
4.事务
八、可靠性探究
1.副本剖析
2.日志同步机制
3.可靠性分析
九、Kafka应用
1.命令行工具
2.Kafka Connect
3.Kafka Mirror Maker
4.Kafka Streams
十、Kafka监控
1.监控数据的来源
2.消费滞后
3.同步失效分区
4.监控指标说明
5.监控模块
十一、高级应用
1.过期时间(TTL)
2.延时队列
3.死信队列和重试队列
4.消息路由
5.消息轨迹
6.消息审计
7.消息代理
8.消息中间件选型
十二、Kafka与Spark的集成
1.Spark的安装及简单应用
2.Spark编程模型
3.Spark的运行结构
4.Spark Streaming简介
5.Kafka与Spark Streaming的整合
6.Spark SQL
7.Structured Streaming
8.Kafka与Structured Streaming的整合
最后
俗话说,好学者临池学书,不过网络时代,对于大多数的我们来说,我倒是觉得学习意识的觉醒很重要,这是开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!
好啦,由于文章篇幅限制,面试题答案详解我就不在这里展示出来了,如果你需要这份完整版的面试题答案详解资料点击这里免费领取
另外,给大家安排了一波学习面试资料:
开始学习的转折点,比如看到对自己方向发展有用的信息,先收藏一波是一波,比如如果你觉得我这篇文章ok,先点赞收藏一波。这样,等真的沉下心来学习,不至于被找资料分散了心神。慢慢来,先从点赞收藏做起,加油吧!
好啦,由于文章篇幅限制,面试题答案详解我就不在这里展示出来了,如果你需要这份完整版的面试题答案详解资料点击这里免费领取
另外,给大家安排了一波学习面试资料:
[外链图片转存中…(img-4ZikE5vD-1619589920049)]
[外链图片转存中…(img-PiSmOacs-1619589920049)]
以上就是本文的全部内容,希望对大家的面试有所帮助,祝大家早日升职加薪迎娶白富美走上人生巅峰!