2018 年, 搬家到北京、重新找工作、加班、加班、加班。。
工作中用的技术栈有了很大的变化,项目一个接一个的做。
工作中用的主要技术
- grpc
这个rpc框架在2018年是比较火的了.优点也不是没有,但是写起来、调试起来非常繁琐。。
Flink
今天在github上已经看到基于sql的flink相关的repo(批流统一的):
https://github.com/ambition119/FlinkSQL
而在2018.9刚开始接触flink的时候,相关的资料还比较少。
flink和 spark 的主要区别:
流处理机制
本质上, spark streaming 只是micro batch
在 DAG 的执行上,Spark 和 Flink 有一个比较显著的区别。 在 Flink 的流执行模式中,一个事件在一个节点处理完后的输出就可以发到下一个节点立即处理。这样执行引擎并不会引入额外的延迟。与之相应的,所有节点是需要同时运行的。而 Spark 的 micro batch 和一般的 batch 执行一样,处理完上游的 stage 得到输出之后才开始下游的 stage。
在 Flink 的流执行模式中,为了提高效率也可以把多个事件放在一起传输或者计算。但这完全是执行时的优化,可以在每个算子独立决定,也不用像 RDD 等批处理模型中一样和数据集边界绑定,可以做更加灵活的优化同时可以兼顾低延迟需求。
容错
Flink 使用异步的 checkpoint 机制来达到任务状态的可恢复性,以保证处理的一致性,所以在处理的主流程上可以做到数据源和输出之间数据完全不用落盘,达到更高的性能和更低的延迟。