精选文章 flinkx架构

flinkx架构

作者:wandy0211 时间: 2019-11-06 11:32:40
wandy0211 2019-11-06 11:32:40

FlinkX是在袋鼠云内部广泛使用的一个基于Flink的异构数据源离线同步工具,用于在多种数据源(MySQL、Oracle、SqlServer、Ftp、Hdfs,HBase、Hive、Elasticsearch等)之间进行高效稳定的数据同步。

FlinkX简化了数据同步任务的开发过程,用户只需提供一份数据同步任务的配置,FlinkX会将配置转化为Flink任务,并自动提交到Flink集群上执行。

1、FlinkX的设计思路

1.1 插件式架构

FlinkX采用了一种插件式的架构:

  • 不同的源数据库被抽象成不同的Reader插件;

  • 不同的目标数据库被抽象成不同的Writer插件

整个数据同步任务共有的处理逻辑被抽象在Template模块中,该模块根据数据同步任务配置加载对应的Reader和Writer插件,组装Flink任务,并提交到Flink集群执行;

flinkx架构1

FlinkX支持任意数据源类型的数据同步工作

FlinkX框架可以支持任意数据源类型的数据同步工作。作为一个开放式系统,用户可以根据需要开发新的插件,以接入新的数据库类型。
 

1.2 Flink任务的自动组装

Template模块根据同步任务的配置信息加载源数据库和目的数据库对应的Reader插件和Writer插件;

Reader插件实现了InputFormat接口,从源数据库中获取DataStream对象;

Writer插件实现了OutputFormat接口,将目的数据库与DataStream对象相关联;

Template模块通过DataStream对象将Reader和Writer串接在一起,组装成一个Flink任务,并提交到Flink集群上执行。

flinkx架构2

Flink任务的自动组装

 

2、FlinkX的优势

一、便于使用

用户只需要提供一份数据同步配置信息,无需编写程序,FlinkX会配置信息自动转换为Flink任务并提交到Flink集群执行。
 

二、性能优越

FlinkX会将数据同步任务提交到Flink集群中的执行,使得FlinkX天然具有Flink的性能优势,主要表现为分布式、低延迟、高吞吐和高可靠。
 

三、多运行模式

同普通的Flink任务一样,FlinkX支持local、standalone和yarn三种运行模式。

  • 「local模式」就是在本地开启一个mini的Flink集群执行Flink任务,这种运行模式的好处是使用方便,不需要预先启动分布式集群,适用于测试和实验环境;缺点是由于单点执行,可靠性差,当数据量大时吞吐量受限;

  • 「standalone模式」是指以独立部署的方式启动一个Flink集群,然后将提交Flink任务到该集群上执行;

  • 「yarn模式」是指在yarn集群中部署Flink集群,然后将Flink任务提交到部署在yarn集群中的Flink集群上执行;standalone模式和yarn模式都是分布式地执行FlinkX,而yarn模式可以利用yarn的资源管理功能,因而成为部署FlinkX应用时的首选。

     

3、开放式可扩展

只要你愿意,你可以给任何类型的数据源开发Reader和Writer插件。
 

4、错误控制和脏数据管理

  • 错误控制可以在数据同步配置信息中设置错误记录阈值、错误占比阈值,使得数据同步任务在出错时及时停止,避免系统资源的浪费。

  • 脏数据管理可以将错误记录、错误原因、错误类型输出到Hive表中,便于日后的排查工作。

flinkx架构3

勿删,copyright占位
分享文章到微博
分享文章到朋友圈

您可能感兴趣

  • HIDL详解-Android10.0 HwBinder通信原理(二)

    摘要:本节主要来讲解Android10.0 HIDL相关知识 阅读本文大约需要花费18分钟。 文章首发微信公众号:IngresGe 专注于Android系统级源码分析,Android的平台设计,欢迎关注我,谢谢! [Android取经之路] 的源码都基于Android-Q(10.0) 进行分析 [Android取经之路] 系列文章: 《系统启动篇》 Android系统架构 Android是怎...

  • SpringMVC框架的入门学习01

    SpringMVC的基本概念 关于三层架构和MVC 三层架构 我们的开发架构一般都是基于两种形式,一种是 C/S 架构,也就是客户端/服务器,另一种是 B/S 架构,也就是浏览器服务器。在 JavaEE 开发中,几乎全都是基于 B/S架构的开发。那么在 B/S架构中,系统标准的三层架构包括:表现层、业务层、持久层。三层架构在我们的实际开发中使用的非常多,所以很多案例也都是基于三层架构设计的。...

  • .NET Core:通过Web API进行微服务交互

    目录 介绍 命名协议 MicroCommerce应用程序结构 MicroCommerce应用开发 1.接口项目,微服务接口和模型类 2. ProductCatalog项目 3. ShoppingCart项目 4. ActivityLogger项目 5. WebUI项目,用户界面 6.关于通用功能的几句话 应用测试 结论 缺点 下载源代码26.3 KB 介绍 几乎所有在.NET Core中使用...

  • 学习HTML5大前端可以从事哪些工作?

      近几年,随着互联网技术的日渐成熟,越来越多的年轻人想往互联网行业发展,就单纯的HTML5大前端网页设计师这一岗位就吸引了无数人。虽然HTML5大前端网页设计门槛相对较低,但是薪资却很高。当然,除了HTML5大前端网页设计外,还有其他的岗位可供选择。今天就让千锋为大家分享一下学习HTML5大前端可以从事的工作有哪些?希望对大家选择相应岗位有所帮助。   一、HTML5开发工程师   HTM...

  • 2020B证(安全员)考试及B证(安全员)模拟考试题库

    题库来源:安全生产模拟考试一点通公众号小程序 2020B证(安全员)考试及B证(安全员)模拟考试题库,包含B证(安全员)考试答案解析及B证(安全员)模拟考试题库练习。由安全生产模拟考试一点通公众号结合国家B证(安全员)考试最新大纲及B证(安全员)考试真题出具,有助于B证(安全员)考试软件考前练习。 1、【单选题】多台挖掘机在同一作用面机械开挖,挖掘机间距应大于( )。( B ) A、5m B...

  • OpenCV 识别图片中的米粒个数,并计算米粒的平均面积和长度(转)

    介绍 OpenCV+Python 使用OpenCV构建图像识别算法,识别图片中的米粒个数,并计算米粒的平均面积和长度 软件架构 模块:OpenCV 4.0.0.21 编程语言:Python 3.7.2 编译器:PyCharm 2018 程序设计思路 首先介绍一下程序设计的思路: 图像采集(取到图像):可以用摄像头拍摄或者图片直接导入 图像预处理:对图像进行灰度化 基于灰度的阈值分割:使用局部...

  • Kotlin学习之协程

    协程是什么? 一个线程框架,其实就是一套由Kotlin官方提供的线程API。就像 Java 中的 Executor 和 Android 中的 AsyncTask,Kotlin 中的协程也有对 Thread API 的封装,让我们可以在写代码时,不用关注多线程就能够很方便地写出并发操作。 协程好在哪里? 方便。可以在同一个代码块里进行多次的线程切换。 协程最常用的功能是并发,而并发的典型场景就...

  • 绝了!这款工具让SpringBoot不再需要Controller、Service、DAO、Mapper!

    Dataway介绍 Dataway 是基于 DataQL 服务聚合能力,为应用提供的一个接口配置工具,使得使用者无需开发任何代码就配置一个满足需求的接口。整个接口配置、测试、冒烟、发布,一站式都通过 Dataway 提供的 UI 界面完成。UI 会以 Jar 包方式提供并集成到应用中并和应用共享同一个 http 端口,应用无需单独为 Dataway 开辟新的管理端口。 这种内嵌集成方式模式的...

华为云40多款云服务产品0元试用活动

免费套餐,马上领取!
CSDN

CSDN

中国开发者社区CSDN (Chinese Software Developer Network) 创立于1999年,致力为中国开发者提供知识传播、在线学习、职业发展等全生命周期服务。