Introduction to Apache Flink - CH2 -Traditional Architecture versus Streaming Architecture

传统结构与流式结构的对比

传统上,一个数据后端的典型结构是使用数据库来存储业务事务性数据。换句话说,数据库(无论是SQL还是NoSQL数据库)存储着就”新鲜的“(准确的近义词)数据,这些数据代表了业务的当前状态。举例来说,这些新鲜的数据可能代表着有多少用户登录了你的系统,你的网站有多少活跃用户或者每个用户当前账户的余额是多少等等。需要使用新鲜数据的数据应用就是建立再这些数据库的基础上的。另一些数据存储系统如分布式的文件存储系统用来存储不常更新的数据,以及那些用来做大型离线计算的数据。
这样的传统的结构支撑应用完好的运行了十几年,但是随着大型的分布式系统的复杂度的提高,系统越来越有压力。许多公司已经观察到的主要问题有:

  • 从数据获取到数据分析的管道太复杂,并且对很多应用来说太慢了。
  • 传统的结构太庞大了:数据库后端扮演者真实数据唯一数据源的角色,所有的应用都需要访问数据后端来获取数据。
  • 以传统结构构件的系统有很复杂的故障原因,导致很难让系统很好的运行。

传统结构面临的另一个问题是如何在一个大型的分布式系统中维持“当前系统状态”的一致性。为了保持状态同步,随着系统的规模增大,难度也成比例的增大。流式结构允许我们放宽要求,我们只需要维护本地的状态一致即可。
一个现代化的替代方案,流式结构,解决了企业在大规模系统中面临的问题。再一个基于流的设计中,我们再向前走了一步,让数据持续的从数据源流向应用,或者在应用间流动。没有一个单一的数据库保持着全局的状态。相反的,真实数据的单一数据源是一个共享的且不断流动的事件流 - 这代表着企业的历史。在这种流式结构中,应用只需要构建本地的视图,存储到本地数据库,分发文件或者搜索文档。

你可能感兴趣的:(Introduction to Apache Flink - CH2 -Traditional Architecture versus Streaming Architecture)