1、林小铂-网易游戏 Flink SQL 平台化实践.pdf
1、林小铂 网易游戏资深开发工程师网易游戏 Flink SQL 平台化实践Flink SQL Platform Construction Practice in Netease Games网易游戏 Flink SQL 发展历程#1基于模板 jar 的 StreamflySQL#2基于 SQL Gateway 的 StreamflySQL v2#3未来工作#4#1网易游戏 Flink SQL 发展历程Streamfly 实时计算平台发展历程Omega 离线作业平台Lambda 子系统Streamfly 实时计算平台(Lambda 为子系统)Streamfly SQL v1(基于模板 jar+配置中心
2、)Streamfly SQL v2(基于 SQL Gateway)2018 Q22019 Q12019 Q42021 Q2Flink SQL 工作流程Flink 集群部署模式 Application:运行在 JobManager,TableEnvironment 在作业提交后退出 Per Job:运行在 Client,TableEnvironment 在作业提交后退出 Session:运行在 Client,TableEnvironment 在作业提交后退出Flink SQL 平台化架构 SQL 解析翻译优化均在 Client 进行 典型案例:通用模板 jar、SQL Client 优点:开箱即
3、用、低耦合 缺点:难以支持高级功能、性能差#1 Client 端 SQL 编译 SQL 解析翻译优化在常驻的 Server 端进程执行 典型案例:SQL Gateway 优点:可拓展性好、性能好 缺点:缺乏成熟开源解决方案,开发成本较高#2 Server 端 SQL 编译#2基于模板 jar 的 StreamflySQL v1技术选型及考量作业调度器 Lambda 采用 Go开发,难以调用 Flink API平台集成Flink 1.9 Client API 比较复杂不适合平台集成,并在重构中松耦合模版 jar 加配置中心模式有多项成熟应用实践经验StreamflySQL v1 架构痛点一:响应
4、慢只有 SQL 编译优化和 Job 调度不可避免资源懒初始化且复用率低(Environment/Cluster)准备 TableEnvironmentSQL 编译优化准备 Per-Job ClusterFlink Job 调度10 s20 s30 s40 s0 s痛点二:调试难 调试的 SQL 与线上 SQL 一致 不能对线上数据产生影响 限制消耗资源 方便快捷地获取到预览结果SQL 调试需求 SQL 翻译时替换调试 SQL 的 Sink 为专用的 PrintSink PrintSink 提供限流功能,利用反压机制达到总体限流,并限制执行时间 调试 SQL 使用 MiniCluster 本地执





点击查看更多