漫谈流计算产品,没有标准的技术注定走不长远

当下大数据领域,流计算非常火热,各种框架层出,知名的有Storm, Spark stream, Kafka stream, Samza,还有最近大热的Flink。它们有个共同点,都是Apache开源基金会旗下的项目。

这些框架各自为战,各有自己的能力、亮点和缺陷,互相也并不兼容。这里带来的最大问题是缺乏标准,也就缺乏衡量流计算产品选型的统一指标。

我经常混开源社区,看到国内国外对开源文化的显著不同。老外们擅长搞标准,不管产品有没有,先搞出RFC协议。我常年关注的几个邮件组,比如DNS、Mail、MQ,高端用户都在里面讨论协议,比如DNSSec之类。这些协议一制定,影响的是全世界的基础架构。

Flink其实是个中国人主导的项目,Data Artisans被阿里收购了,现在改名叫Veverica。然后,你看到,在Flink社区里混的主要都是中国人,讨论的也是各种功能的实现。当然,这些实现有draft描述,但并没有在行业建立标准。

我倒不觉得中国人工程能力不强,实际上国人天性聪明和勤奋,动手能力很强。别说Flink,就连Alink、Blink大家都能搞出来,听说阿里就搞了个Blink。但是,这种没有标准的东西,注定很难走的长远。

我打个比方,QQ邮箱大家都说干净无广告,但Q邮背后的技术,大多并不遵循标准。它的反垃圾策略就是乱搞一通,人工拍脑袋的,既不遵循统计规律,又不以RFC标准为导向。国内还好,国外的邮箱与Q邮互通就是个杯具。

Flink也是,从头到尾自己搞的一套。服务器也好,客户端也好,交互协议也好,各种接口也好,都是自己搞的实现。这对程序员挺爽的,我想怎么玩就怎么玩。但这样玩着玩着,大家都死了。

流计算领域,我觉得当前迫切的,不是再去开发各种xxlink,而是大家统一起来,先把技术标准和实现规范制定了。在这个标准和规范指导下,各种产品可以互通,有统一的产品衡量指标,这样领域才能做大。

DNS、HTTP、SQL,就是很好的案例。有了标准,也就建立起一个世界观。在统一的世界观下,大家才能越混越好。没有标准,只能是浑浊、黑暗的深夜,看不到头。

Print this entry