| |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| -> 大数据 -> Flink Kafka Sink 源码分析 -> 正文阅读 |
|
|
[大数据]Flink Kafka Sink 源码分析 |
Sink部分Flink根据Kafka分为了2个部分
0.11之前因为没有kafka的事务相关 所以没法做到 消息的exactly_once 0.11之后是可以实现的 FlinkKafkakProducer 的创建有多个重载构造方法,当我们没有指定相关的 流checkpoint 语义, 那么默认 是at_least_once FlinkKafkaProducerBasepublic abstract class FlinkKafkaProducerBase<IN> extends RichSinkFunction<IN> implements CheckpointedFunction { 继承 sinkFunction 基于实现checkpointFunction 对于SinkFunction相关的处理逻辑是在invoke,snapshot里面,但我们首先看下其一些前置准备工作 open(), init() Openopen方法做了一些前置工作的准备,主要是一下几个
Invokeinvoke(FlinkKafkaProducer.KafkaTransactionState transaction, IN next, Context context) 如果 transcation 如果是 EXACTLY_ONCE 每次会在每次 checkpoint的时候变化 做一些消息转发的动作, 如果是 exactly_once模式 这时候是不会真正的提交,只有在checkpoint的时候才会 将本次事务的消息进行提交,然后再开启下一个事务 Snapshot checkpoint 阶段 (重点)
? ? ? ? 3. currentTransactionHolder = beginTransactionInternal() 开启一个新的事务
|
|
|
|
|
| 上一篇文章 下一篇文章 查看所有文章 |
|
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
| 360图书馆 购物 三丰科技 阅读网 日历 万年历 2025年11日历 | -2025/11/22 23:47:51- |
|
| 网站联系: qq:121756557 email:121756557@qq.com IT数码 |