提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档
KAFKA三层队列设计DDD思想
- 前言
- 一、KAFKA服务端
- 二、Kafka 网络请求 DDD面向对象设计图
- 三、 DDD图 手写版
- 3.1 kafka启动、线程状态更新
- 3.2processor run线程 整体 以及读数据设计
- leader选举成功后,创建fetcher线程,以及HW、LEO更新
- 日志具体写数据流程、以及数据清理
- 发送响应DDD设计
- 总结
前言
Kafka异步3层队列异步架构设计
一、KAFKA服务端
先来一个图
二、Kafka 网络请求 DDD面向对象设计图
程序设计,是现实世界的抽象,
看图1,整体设计清晰,缺少具体到面向对象设计细节。
DDD: 把源码的生产消息流程的,简单画一个DDD图,让大家印象更深刻。
其实,三层队列设计(Processor, RequestChannel,KafkaRequestHandler)三种不同的线程,并发处理任务请求和响应。
这个图简化了很多细节,让大家更专注在队列异步设计,多线程间信息交互设计有更深的体会。
三、 DDD图 手写版
画电子版,耗时比较久,学习过程中,更多手画DDD图,字比较潦草
主要给大家启发,和我把笔记做个电子版保存,正在学写字哈,明年回来,再比对一下进步多少。
3.1 kafka启动、线程状态更新
3.2processor run线程 整体 以及读数据设计
leader选举成功后,创建fetcher线程,以及HW、LEO更新
日志具体写数据流程、以及数据清理
发送响应DDD设计
总结
Kafka多层队列,DDD设计很简洁,非常适合大家学习,我也参考kafka三层队列通信,写了个文件上传下载功能,后期放到github上,提供大家学习。
学习源码一个很好的方式:画DDD图。