Flink kafka Producer的容错是什么?
Flink kafka 09、010版本下,通过setLogFailuresOnly为false,setFlushOnCheckpoint为true,能达到at-least-once语义。setLogFailuresOnly,默认为false,是控制写kafka失败时,是否只打印失败的log不抛异常让作业停止。setFlushOnCheckpoint,默认为true,是控制是否在checkpoint时fluse数据到kafka,保证数据已经写到kafka。否则数据有可能还缓存在kafka 客户端的buffer中,并没有真正写出到kafka,此时作业挂掉数据即丢失,不能做到至少一次的语义。
Flink kafka 011版本下,通过两阶段提交的sink结合kafka事务的功能,可以保证端到端精准一次。详细原理可以参考:https://www.ververica.com/blog/end-to-end-exactly-once-processing-apache-flink-apache-kafka。
版权声明:本文内容由阿里云实名注册用户自发贡献,版权归原作者所有,阿里云开发者社区不拥有其著作权,亦不承担相应法律责任。具体规则请查看《阿里云开发者社区用户服务协议》和《阿里云开发者社区知识产权保护指引》。如果您发现本社区中有涉嫌抄袭的内容,填写侵权投诉表单进行举报,一经查实,本社区将立刻删除涉嫌侵权内容。