接前一篇文章:软考 系统架构设计师系列知识点之大数据设计理论与实践(10)
所属章节:
第19章. 大数据架构设计理论与实践
第3节 Lambda架构
19.3.6 Lambda与其它架构模式对比
Lambda架构的诞生离不开很多现有设计思想和架构的铺垫,如事件溯源(Event Sourcing)架构和命令查询分离(Command Query Responsibility Segregation,CQRS)架构。Lambda架构的设计思想和这两者有一定程度的相似。
下面对Lambda架构和这两者进行分析。
1. 事件溯源(Event Souring)与Lambda架构
Event Surcing架构模式由Thought Works的首席科学家Martin Flower提出。Event Sourcing本质上是一种数据持久化的方式,其由三个核心观点构成:
(1)整个系统以事件为驱动,所有业务都由事件驱动来完成。
(2)事件是核心,系统的数据以事件为基础,事件要保存在某种存储上。
(3)业务数据只是一些由事件产生的视图,不一定要保存到某种存储上。
Lambda架构中数据集的存储使用的概念与Event Souring中的思想完全一致,二者都是在使用统一的数据模型对数据处理事件本身进行定义。这样在发生错误的时候,能够通过模型找到错误发生的原因,对这一事件进行重新计算以丢弃错误信息,恢复到系统应该的正确状态,以此实现了系统的容错性。
2. CQRS与Lambda架构
CQRS架构分离了对于数据进行的读操作(查询)和写(修改)操作。其将能够改变数据模型状态的命令和对于模型状态的查询操作实现了分离。这是领域驱动设计(Domain-Driven Design,DDD)的一个架构模式,主要用来解决数据库报表的输出处理方式。
Lambda架构中,数据的修改通过批处理和流处理实现,通过写操作将数据转换成查询时所对应的View。在Lambda架构中,对数据进行查询时,实际上是通过读取View直接得到结果,读出所需的内容。这实际上是一种形式的读写分离。
进行读写分离设计的原因是,读操作实际上比写操作要省时得多,如果将读和写操作放在一起,实际处理大量数据时,会因为写操作的时长问题影响整体业务的处理效率。在大数据系统中经常处理海量数据,进行读写分离的重要性不言而喻。
至此,“19.3.6 Lambda与其它架构模式对比”的全部内容就讲解完了。“19.3 Lambda架构”的全部内容也讲解完了。