Jorgen's blog Jorgen's blog
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)

jorgen

Love it, make mistakes, learn, keep grinding.
首页
  • 平台架构
  • 混合式开发记录
  • 推送服务
  • 数据分析
  • 实时调度
  • 架构思想

    • 分布式
  • 编程框架工具

    • 编程语言
    • 框架
    • 开发工具
  • 数据存储与处理

    • 数据库
    • 大数据
  • 消息、缓存与搜索

    • 消息队列
    • 搜索与日志分析
  • 前端与跨端开发

    • 前端技术
    • Android
  • 系统与运维

    • 操作系统
    • 容器化与 DevOps
  • 物联网与安全

    • 通信协议
    • 安全
    • 云平台
收藏
  • 关于我
  • 终身学习
  • 关于时间的感悟
  • 分类
  • 标签
  • 归档
GitHub (opens new window)
  • 关于我
  • 异类
  • 关于时间的感悟
  • 练车有感
  • 开发有感
    • 问题
    • 背景介绍
    • 问题
    • 思考
    • 反思
    • 感悟
  • 持续学习
  • 关于
Jorgen
2024-02-18
目录

开发有感

# 问题

一个flink的配置文件复用的问题,困扰我了至少一周时间。直到今天早上,我才将完整的处理好。

# 背景介绍

  1. 一个flink的实时任务仓库中存放着同一类型的任务,这个任务现在已经存在三个。
  2. 三个任务的source 读取配置基本一致,都是从消息队列中读取消息,不同的是读取的策略不相同。一个需要从头到尾开始读取,其余两个只需要从最新的开始读取即可。

# 问题

  1. 如何在该仓库中,不用的任务使用不同的配置?
  2. 配置使用的properties,读取配置的工具是flink自带的parameterUtil。

# 思考

最原始的想法就是通过flink-job name的方式进行区分,不同的flinK job拥有不用的配置。这个最初的想法也即最后的实现方式,只不过在刚开始时,不知道如何呈现。

  1. 配置全部放在一个properties文件里面,这时就存在一个问题,properties的key不能够重复,那么不同的key的化,那就得flink-job-name-xxx这种方式来配置,解析的时候也按照这种方式来进行。这种方式看着太繁琐,而且杂乱,不同的配置放在一起,有一些value相同的,在一个文件中又能够合并,但是解析的时候有需要区分。已经完成了实现,但是看着不太优雅,放弃!!!

  2. yaml的方式进行配置。这种配置能够实现不同的任务通过缩进的方式进行配置,但需要额外引入解析工具来对yaml进行解析,而且对原来的适配很不友好。遂放弃!!!

  3. 最后,将不同的配置文件分开,几个任务就有几个配置文件,不同的文件通过flink job name进行区分。不同的环境通过代码分支进行区分。这种方式能够复用现有的解析程序,而且也能够隔离不同任务的配置。采纳!!!

# 反思

现在看来,这个方式也不是很高级,也就是最初的想法的具体实现,那就为什么一直想不到这个方式呢?还等了至少一周的时间,早上的时候才灵光乍现。

# 感悟

有点时候的确存在这种情况,看到一个东西,或者想到一个东西,就是想不透,要一直记在心里面,需要一直想,一直尝试。最后才能成功。

上次更新: 2025/03/09, 15:45:50
练车有感
持续学习

← 练车有感 持续学习→

最近更新
01
STM32入门
03-09
02
ADB调试
03-09
03
微信小程序学习记录
02-09
更多文章>
Theme by Vdoing | Copyright © 2019-2025 Jorgen | MIT License
  • 跟随系统
  • 浅色模式
  • 深色模式
  • 阅读模式