云原生场景下数据总线需求场景及挑战
数据总线简介
数据总线作为大数据架构下的流量中枢,在不同的大数据组件之间承载着数据桥梁的作用。通过数据总线,可以实时接入来自服务器、K8s、APP、Web、IoT/移动端等产生的各类异构数据,进行统一数据管理,进而实现与下游系统的解耦;之后可以异步实现数据清洗、数据分发、实时计算、离线计算等计算过程,进而将结构化后的数据投递到下游的分析、归档系统,进而达到构建清晰的数据流的目的。广义上,数据采集与接入、传输链路、存储队列、消费计算、投递等都属于数据总线的范畴,整体上可以分为采集接入层、管道层、计算层。
通过数据总线,可以轻松达到如下目的:
解耦生产者与消费者:消费方完全可以不用感知写入方的任何细节,降低系统对接复杂性,提升系统可靠性。
应对流量洪峰,使数据的生产异步于数据的消费,消峰填谷。
定义统一格式与操作语义:接入多种异构数据,通过数据处理构建统一的格式。
举一个简单的例子,在计算广告检索系统中,广告的点展数据至关重要。一份点展数据往往会被多方订阅消费,且应用场景各异,有精度到秒级的实时计算业务,也有类似于Hadoop的小时级或天级的批处理任务。如果数据直接对接,就需要考虑各种异常场景,会让系统变得极其复杂。而通过数据总线,可以大大降低系统复杂度,提高系统可靠性,这样可以保证任意一个数据订阅系统即使经历了下线维护或者宕机,也可以在重新上线后从之前的断点处继续进行数据处理。
云原生场景下的技术挑战
面对每天几百亿次读写、近百PB数据流量、万级用户的场景时,构建高可用的数据总线将会是一件非常有挑战的事情。这里简单列举一些场景的流量场景:
生产者:因业务促销等活动,流量在几分钟内上涨至原先十几倍或几百倍;
消费者:对一种数据同时有几十个订阅者来同时消费;
每天有几百个异构数据源接入,方式各不相同,需要大量适配。
经过几十年的飞速发展,整个开发模式、系统架构、部署模式、基础设施等也都经过了几次颠覆性的变革,这些变革带来了更快的开发和部署效率。但随之而来整个的系统与网络环境也更加的复杂、部署模式和运行环境也更加动态和不确定、接入的数据源与数据量大幅增加、流量波动等不确定因素变大、接入难度与原始结构差异化变大,这些都是云原生时代也给数据总线带来的新的要求。
总结下来,云原生时代数据总线的技术挑战可以从采集接入层、管道层、计算层三方面展开。采集接入层重点