Flink 原理、实战与性能优化 (2):Apache Flink 介绍 1.2&1.2.1

阅读数:8 2019 年 12 月 11 日 20:38

Flink原理、实战与性能优化(2):Apache Flink介绍 1.2&1.2.1

(数据架构的演变)

内容简介
这是一部以实战为导向,能指导读者零基础掌握 Flink 并快速完成进阶的著作,从功能、原理、实战和调优等 4 个维度循序渐进地讲解了如何利用 Flink 进行分布式流式应用开发。作者是该领域的资深专家,现就职于第四范式,曾就职于明略数据。
全书一共 10 章,逻辑上可以分为三个部分:
第一部分(第 1~2 章)
主要介绍了 Flink 的核心概念、特性、应用场景、基本架构,开发环境的搭建和配置,以及源代码的编译。
第二部分(第 3~9 章)
详细讲解了 Flink 的编程范式,各种编程接口的功能、应用场景和使用方法,以及核心模块和组件的原理和使用。
第三部分(第 10 章)
重点讲解了 Flink 的监控和优化,参数调优,以及对反压、Checkpoint 和内存的优化。

近年来随着开源社区的发展,越来越多新的技术被开源,例如雅虎的 Hadoop 分布式计算框架、UC 伯克利分校的 Apache Spark 等,而伴随着这些技术的发展,促使着企业数据架构的演进,从传统的关系型数据存储架构,逐步演化为分布式处理和存储的架构。


(传统数据基础架构)

如图 1-1 所示,传统单体数据架构(Monolithic?Architecture)最大的特点便是集中式数据存储,企业内部可能有诸多的系统,例如 Web 业务系统、订单系统、CRM 系统、ERP 系统、监控系统等,这些系统的事务性数据主要基于集中式的关系性数据库(DBMS)实现存储,大多数将架构分为计算层和存储层。存储层负责企业内系统的数据访问,且具有最终数据一致性保障。这些数据反映了当前的业务状态,例如系统的订单交易量、网站的活跃用户数、每个用户的交易额变化等,所有的更新操作均需要借助于同一套数据库实现。

Flink原理、实战与性能优化(2):Apache Flink介绍 1.2&1.2.1

图 1-1 传统数据结构

单体架构的初期效率很高,但是随着时间的推移,业务越来越多,系统逐渐变得很大,越来越难以维护和升级,数据库是唯一的准确数据源,每个应用都需要访问数据库来获取对应的数据,如果数据库发生改变或者出现问题,则将对整个业务系统产生影响。

后来随着微服务架构(Microservices?Architecture)的出现,企业开始逐渐采用微服务作为企业业务系统的架构体系。微服务架构的核心思想是,一个应用是由多个小的、相互独立的微服务组成,这些服务运行在自己的进程中,开发和发布都没有依赖。不同的服务能依据不同的业务需求,构建的不同的技术架构之上,能够聚焦在有限的业务功能。

如图 1-2 所示,微服务架构将系统拆解成不同的独立服务模块,每个模块分别使用各自独立的数据库,这种模式解决了业务系统拓展的问题,但是也带来了新的问题,那就是业务交易数据过于分散在不同的系统中,很难将数据进行集中化管理,对于企业内部进行数据分析或者数据挖掘之类的应用,则需要通过从不同的数据库中进行数据抽取,将数据从数据库中周期性地同步到数据仓库中,然后在数据仓库中进行数据的抽取、转换、加载(ETL),从而构建成不同的数据集市和应用,提供给业务系统使用。

Flink原理、实战与性能优化(2):Apache Flink介绍 1.2&1.2.1

图 1-2 微服务架构

Flink原理、实战与性能优化(2):Apache Flink介绍 1.2&1.2.1

购书地址 https://item.jd.com/12518733.html?dist=jd

评论

发布