第2章-实时流架构设计-课堂随笔
实时计算 第二章 笔记
什么叫流
无限数据就是一个一直长、基本看不到头的数据集,对应的处理叫无界数据处理。跟批处理那种"有界"是两码事。
耦合
架构本质上是分层系统,靠一堆松散耦合的系统拼起来。耦合就是组件之间的依赖程度。课上举了外卖的例子:V1.0 商家自己送,V2.0 雇骑手,V3.0 冒出个平台把两边撮合——依赖越来越松,这就是解耦的过程。解耦要解决的无非是需求波动、资源按需增减,以及中间得有个协调者。
四个挑战
实时性:数据有实时价值,过期就废了。
随机性:真实世界的事件本来就随机,有时半天没数据,有时一下涌一堆。
无序性:异步、并发、网络延迟、时钟不同步,严格按序到达基本不可能。
无限性:流数据和批数据最本质的区别,所以系统必须高可用、还得能一直处理下去。
架构
Lambda:批处理层 + 速度层 + 服务层,实时离线都能顾,代价是要维护两套代码。
Kappa:把批处理层砍了只留实时层,历史数据靠 Kafka 存着重放。
组件就四块:数据采集、消息队列、数据处理、数据存储。
特性
高可用:靠冗余,MTTF、MTTR 那套算法。
低延迟:秒级甚至毫秒级,办法是选高效引擎(Storm、Flink、Kafka)、减少中间环节。
可扩展:水平扩展(加机器)和垂直扩展(升级配置)。
最后留了两道思考题:水平扩展有没有上限、高可用和低延迟是不是打架。没标准答案,看看就行。
浙公网安备 33010602011771号