flink下面的connector的一致性的思考

本文探讨了Flink Connector如何确保数据一致性,重点关注数据源和接收器的处理。Flink通过operator配置保证operator层面的一致性,而在数据层面,通过source和sink的机制实现exactly-once消费。Kafka、RabbitMQ、MySQL CDC、MongoDB CDC和Ocean Base CDC等都采用特定策略,如offset管理、两阶段提交协议,来确保数据不重复消费。但实现全局的exactly-once语义需要source和sink端同时支持分布式事务和一致性机制。
摘要由CSDN通过智能技术生成

flink connector怎么保证数据的一致性的操作
1.flink的operator是可以通过相关的配置来保证operator的一致性的,这个不是主要讨论的问题;
2.下面我们主要讨论的问题是在数据层面,flink是如何保证数据的基准的一次性的消费的。
首先,我们需要有如下的前提,我们认为程序是会出错的,并且flink的处理任务是会报错的。那么我们已经可以获取得到算子的状态数据了,那么我们小得的数据是如何能够实现查找的。下面是一些典型的框架的处理思路的。我们首先讨论的是数据的source侧,然后处理的是数据的sink的,看一下如何保证数据的exactly-once的消费的
source侧:
1)kafka,rabiitmq:source端维护对应的offset就可以实现数据的精准的一次性的消费的。对应的维护相关的offset就可以了,根据offset就可以实现精准的offset的消费的。
2)mysql的cdc的connector对应的也是存储了相关的offset来保证对应的excatly-once的数据消费的,对应的文件是BinlogOffset ,对应的是结合了offset加上相关的snapshot机制来实现的。mysql的cdc的话只能作为source来操作的,如果想要对应的sink操作的话,需要的是flink的jdbc的connector的机制来操作的。flink的底层是使用Debezium来读取mysql的changlog的数据,而不是使用canel来读取数据的。mysql的cdc是采用单线程读取数据的。cdc是不会动态的捕获数据库的schema的变更的。
3)mongodb的cdc:mongodb的cdc利用的是mongodb的新特性的,对应的是采用相关的Change Stream来发送消息时间,订阅消息完成数据订阅操作的。需要的是mongod

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值