1 Flink 写入Redis
基于巴希尔(Bahire)-Flink写入Redis集群。
1.1 继承RichSinkFunction
即Flink-Stream。
1.2 使用第3方的包
即Apache-Bachir-Flink。
注意到RedisSink:
2 Redis-Connector
Apache-Bachir-Flink所提供的
缺点
- 使用Jedis, 没有使用Lettuce
- 没有对 Flink Table/SQL Api 的支持
3 Flink 读取Redis
Flink通过富函数类实现自定义Source以及通过自定义Source读取Redis集群。
3.1 继承 RichSourceFunction
可实现自定义的Source。
3.2 继承RichParallelSourceFunction(推荐)
也就是可以设置并行度。
RichSourceFunction RichSinkFunction,RichMapFunction都是富函数类
Flink API集合分为2大类:
- 函数类 (MapFunction)
- 富函数类 (RichMapFunction)
富函数类比函数类提供更多函数生命周期和获取上下文的方法:
富函数类通常是抽象类
RichParallelSourceFunction V.S RichSourceFunction
- RichParallelSourceFunction 可设置并行度
- RichParallelSourceFunction 和RichSourceFunction 代码可互相套用
- RichParallelSourceFunction 默认并行度是cpu core数
- RichSourceFunction 并行度只能是1
3.3 实现SourceFunction接口
Flink 原生的Source。
关注我,紧跟本系列专栏文章,咱们下篇再续!
作者简介:魔都架构师,多家大厂后端一线研发经验,在分布式系统设计、数据平台架构和AI应用开发等领域都有丰富实践经验。
各大技术社区头部专家博主。具有丰富的引领团队经验,深厚业务架构和解决方案的积累。
负责:
- 中央/分销预订系统性能优化
- 活动&券等营销中台建设
- 交易平台及数据中台等架构和开发设计
- 车联网核心平台-物联网连接平台、大数据平台架构设计及优化
- LLM Agent应用开发
- 区块链应用开发
- 大数据开发挖掘经验
- 推荐系统项目
目前主攻市级软件项目设计、构建服务全社会的应用系统。
参考: