• [读书笔记]《大数据之路》——阿里数据服务架构演进的四个阶段


    阿里数据服务架构演进的四个阶段

    摘要

    阿里的《大数据之路》第6.1章介绍了他们对数据服务架构也进行的多次升级改造。服务架构的每次升级,均在性能、稳定性、扩展性等方面有所提升,从而能更好地服务于用户。观察行业内走在前面的人是如何走的对自身的视野有许多帮助,借此机会读这本章书,并整理出相关重点。

    演进的四阶段

    基于性能、扩展性和稳定性等需求,不断升级数据服务的架构,依次经历了内部代号为 DWSOA OpenAPI SmartDQ OneService 的四个阶段。

    阿里数据服务演进过程

    图1. 阿里数据服务演进过程

    阶段一:DWSOA——一个需求一个接口

    DWSOA架构示意图

    图2. DWSOA架构示意图

    DWSOA相关名词解析

    DWSOA=DW+SOA

    DW:Data Warehouse(数据仓库)

    SOA:Service Oriented Architecture(面向服务的架构)

    SOA是一种设计方法,其中包含多个服务,而服务之间通过配合最终会提供一系列功能。一个服务通常以独立的形式存在于操作系统进程只能。服务之间通过网络调用,而非采用进程内调用的方式进行通信。————《微服务设计》第1.3节

    基于服务总线的设计:

    基于服务总线的设计是SOA一种很常见的设计实践。基于总线的设计,借鉴了计算机内部硬件组成的设计思想(通过总线传输数据)。

    在分布式系统中,不同子系统之间需要实现相互通信和远程调用,主要有点对点通信和基于总线的设计两种模式。

    “点对点”通信方式问题:系统之间紧密耦合、配置和引用混乱、服务调用关系错综复杂、难以统一管理、异构系统之间存在不兼容等。

    基于总线的设计的优势:总线则作为中枢系统,提供统一的服务入口,并实现了服务统一管理、服务路由、协议转换、数据格式转换等功能。这样能够将不同系统有效地连接起来,并大大降低了连接数(每个子系统只需要和总线建立连接)和系统间连接拓扑的复杂度。

    DWSOA的模式

    是将业务方对数据的需求通过 SOA 服务的方式暴露出去。由需求驱动,一个需求开发一个或者几个接口,编写接口文档,开放给业务方调用。

    DWSOA的特点与缺陷

    特点:实现简单

    缺陷:烟囱式开发,导致接口众多不好维护。

    (1) 接口粒度比较粗,灵活性不高,扩展性差,复用率低。

    (2) 开发效率不高,无法快速响应业务。

    阶段二:OpenAPI——封装结果,暴露服务

    OpenAPI架构示意图

    图3. OpenAPI架构示意图

    OpenAPI业界的定义

    通过更好地集成服务、增加代码重用来实现一个接口,然后通过暴露该接口,使得其他服务的应用程序可以与我们的应用程序进行交互,即向其他人公开我们的功能。

    OpenAPI效果

    有效地收敛了接口数量。

    计算层名词解析

    ADS:Application Data Store 应用数据存储层,做分析处理后可同步到RDS数据库里边。

    DWS:data warehouse service 服务数据层,基于DWB上的基础数据,整合汇总成问分析某一个主题域的服务数据,一般是宽表。

    DWD:data warehouse detail 细节数据层,是业务层与数据仓库的隔离层。

    ODS:Operation Data Store 原始数据层,存放原始数据(操作型数据),直接加载原始日志、数据,数据保持原貌不做处理。

    阶段三:SmartDQ——用DSL进行抽象

    SmartDQ架构示意图

    图4. SmartDQ架构示意图

    实现

    在 OpenAPI 的基础上,再抽象一层,用 DSL (Domain Specific
    Language ,领域专用语言)来描述取数需求,所有的简单查询服务减少到只有一个接口。

    优势

    只需要检查 SQL 的工作量,并且可以开放给业务方通过写 SQL 的方式对外
    提供服务 ,由服务提供者自己来维护 SQL ,走向 DevOps。

    封装了跨异构数据源和分布式查询功能。所以 SQL 提供者只需关心逻辑表的结构,不需要关心底层由多少物理表
    组成。

    提供 300 多个 SQL 模板,每条 SQL 承担多个接口 的需求,而我们只用1位同学来维护 SmartDQ。

    阶段四:统一的数据服务层OneService——对外提供多种类型服务

    统一的数据服务层(OneService)

    图4. 统一的数据服务层(OneService)

    OneService提供的多种服务类型

    (1) OneService-SmartDQ:满足了简单的查询服务需求。

    (2) OneService-Lego:插件化方式,一类需求开发一个插件,并做成微服
    务,使用 Docker 做隔离,避免插件之间相互影响。

    (3) OneService-iPush:提供 Web Socket和long polling 两种方式,其应用场景主要是商家端实时直播。

    (4) OneService-uTiming:提供即时任务和定时任务两种模式,其主要应用场景是满足用户运行大数据量任务的需求。

    OneService的特点

    对外提供数据服务的核心引擎、开发配置平台、门户网站

    数据生产者:将数据人库

    服务提供者:根据标准规范快速创建服务、发布服务、监控服务、下线服务

    服务调用者:在门户网站中快速检索服务,申请权限和调用服务

  • 相关阅读:
    NX二次开发-创建直线(起点-向量方向-长度)UF_CURVE_create_line
    NX二次开发-创建圆弧(圆心-半径)UF_CURVE_create_arc
    NX二次开发-UFUN获取直线的两个端点UF_CURVE_ask_line_data
    NX-二次开发创建圆弧(三点圆弧)UF_CURVE_create_arc_3point
    NX二次开发-创建直线UF_CURVE_create_line与NXOpen->CreateLine
    NX二次开发-创建圆弧(起点-终点-半径)UF_CURVE_create_arc_point_point_radius
    NX二次开发-UFUN打开信息窗口UF_UI_open_listing_window()
    NX二次开发-UFUN信息窗口打印UF_UI_write_listing_window
    NX二次开发-UFUN单按钮模态对话框窗口打印uc1601用法
    NX二次开发-UFUN打开二进制STL文件函数UF_STD_open_binary_stl_file
  • 原文地址:https://www.cnblogs.com/JasonCeng/p/12831440.html
Copyright © 2020-2023  润新知