东莞做网站建设wordpress 安装出错
news/
2025/9/23 14:36:24/
文章来源:
东莞做网站建设,wordpress 安装出错,分享此博文wordpress,网站建设优秀网站建设1.总结
目的#xff1a;想要在故障恢复后不丢数据
输入端 保证可以重复发送数据如果是kafka#xff0c;Flink负责维护offset#xff0c;不用kafka维护设置kafka的隔离级别为#xff1a;读已提交flink 开启检查点采用对齐或者不对齐的精确一次输出端 kafka 幂等事务两阶段…1.总结
目的想要在故障恢复后不丢数据
输入端 保证可以重复发送数据如果是kafkaFlink负责维护offset不用kafka维护设置kafka的隔离级别为读已提交flink 开启检查点采用对齐或者不对齐的精确一次输出端 kafka 幂等事务两阶段提交(2pc)hbase 幂等因为有put操作doris 两阶段提交(2pc)
实际应用中最难做到、也最希望做到的一致性语义无疑就是端到端end-to-end的“精确一次”。我们知道对于Flink内部来说检查点机制可以保证故障恢复后数据不丢在能够重放的前提下并且只处理一次所以已经可以做到exactly-once的一致性语义了。
所以端到端一致性的关键点就在于输入的数据源端和输出的外部存储端。 2.输入端保证
输入端主要指的就是Flink读取的外部数据源。对于一些数据源来说并不提供数据的缓冲或是持久化保存数据被消费之后就彻底不存在了例如socket文本流。对于这样的数据源故障后我们即使通过检查点恢复之前的状态可保存检查点之后到发生故障期间的数据已经不能重发了这就会导致数据丢失。所以就只能保证at-most-once的一致性语义相当于没有保证。
想要在故障恢复后不丢数据外部数据源就必须拥有重放数据的能力。常见的做法就是对数据进行持久化保存并且可以重设数据的读取位置。一个最经典的应用就是Kafka。在Flink的Source任务中将数据读取的偏移量保存为状态这样就可以在故障恢复时从检查点中读取出来对数据源重置偏移量重新获取数据。
数据源可重放数据或者说可重置读取数据偏移量加上Flink的Source算子将偏移量作为状态保存进检查点就可以保证数据不丢。这是达到at-least-once一致性语义的基本要求当然也是实现端到端exactly-once的基本要求。 3.输出端保证
有了Flink的检查点机制以及可重放数据的外部数据源我们已经能做到at-least-once了。但是想要实现exactly-once却有更大的困难数据有可能重复写入外部系统。
因为检查点保存之后继续到来的数据也会一一处理任务的状态也会更新最终通过Sink任务将计算结果输出到外部系统只是状态改变还没有存到下一个检查点中。这时如果出现故障这些数据都会重新来一遍就计算了两次。我们知道对Flink内部状态来说重复计算的动作是没有影响的因为状态已经回滚最终改变只会发生一次但对于外部系统来说已经写入的结果就是泼出去的水已经无法收回了再次执行写入就会把同一个数据写入两次。
所以这时我们只保证了端到端的at-least-once语义。
为了实现端到端exactly-once我们还需要对外部存储系统、以及Sink连接器有额外的要求。能够保证exactly-once一致性的写入方式有两种
幂等写入事务写入
我们需要外部存储系统对这两种写入方式的支持而Flink也为提供了一些Sink连接器接口。接下来我们进行展开讲解。
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/912860.shtml
如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!