基本原理
本质上,seatunnel不是对Spark和Flink内部的修改,而是在Spark和Flink的基础上,做了一个平台化和产品化的包装,使广大开发者使用Spark和Flink的时候更加简单和易用,主要有两个亮点:
- 完全可以做到开箱即用
- 开发者可以开发自己的插件,plugin in 到 seatunnel上跑,而不需要写一个完整的Spark或者Flink程序
- 当然,seatunnel从v2.0开始,同时支持Spark和Flink。
如果想了解seatunnel的实现原理,建议熟练掌握一个最重要的设计模式:控制反转(或者叫依赖注入),这是seatunnel实现的基本思想。控制反转(或者叫依赖注入)是什么?我们用两句话来总结:
- 上层不依赖底层,两者依赖抽象。
- 流程代码与业务逻辑应该分离。
seatunnel的插件化体系是如何构建出来的?
可能有些同学听说过Google Guice,它是一个非常优秀的依赖注入框架,很多开源项目如Elasticsearch就是利用的Guice实现的各个模块依赖的注入,当然包括Elasticsearch 插件。
其实对于插件体系架构来说,java本身就带了一个可以用来实现插件化的功能,即Java SPI,开源项目Presto中也大量使用了它来加载插件。
文章列表
- Apache Seatunnel-Roadmap
- Apache Seatunnel-Sink plugin : Clickhouse [Spark]
- Apache Seatunnel-Sink plugin : Console [Spark]
- Apache Seatunnel-Sink plugin : Elasticsearch [Spark]
- Apache Seatunnel-Sink plugin : Email [Spark]
- Apache Seatunnel-Sink plugin : File [Spark]
- Apache Seatunnel-Sink plugin : Hbase [Spark]
- Apache Seatunnel-Sink plugin : Hdfs [Spark]
- Apache Seatunnel-Sink plugin : Mysql [Spark]
- Apache Seatunnel-Sink plugin : Phoenix [Spark]
- Apache Seatunnel-Source plugin : Fake [Spark]
- Apache Seatunnel-Source plugin : FakeStream [Spark]
- Apache Seatunnel-Source plugin : Hive [Spark]
- Apache Seatunnel-Source plugin : JDBC [Spark]
- Apache Seatunnel-Source plugin : Kafka [Flink]
- Apache Seatunnel-Source plugin : Kafka [Spark]
- Apache Seatunnel-Source plugin : Socket [Flink]
- Apache Seatunnel-Source plugin : SocketStream [Spark]
- Apache Seatunnel-Transform Plugin
- Apache Seatunnel-Transform plugin : Json [Spark]
- Apache Seatunnel-Transform plugin : SQL [Spark]
- Apache Seatunnel-Transform plugin : Split [Spark]
- Apache Seatunnel-seatunnel v2.x 与 v1.x 的区别是什么?
- Apache Seatunnel-start-seatunnel-flink.sh 使用方法
- Apache Seatunnel-start-seatunnel-spark.sh 使用方法
- Apache Seatunnel-下载、安装
- Apache Seatunnel-为 seatunnel v2.x 贡献代码
- Apache Seatunnel-完整配置文件案例 [Spark]
- Apache Seatunnel-快速开始
- Apache Seatunnel-插件开发
- Apache Seatunnel-深入seatunnel
- Apache Seatunnel-部署与运行