Receiver容错:
Reveiver两种出错方式
①WAL预写出现问题,因为我们offset没有更新,所以可以从kafka中重新拉取数据
②处理时出现问题,导致进程挂掉,通过ResourceManager找到另外的worker节点上来启动AM,AM找到对应的container,从checkpoint恢复这些上下文代码逻辑计算。数据可以从WAL中进行获取,重新跑起来,数据处理成功后,从memory内存中删除,再从WAL中删掉,更新Offset
Direct 容错
ZK/redis/mysql保存offset-end就可以。
Direct模式,容错由Kafka保证
如果1,2数据块执行失败,offset没有更新,进行重新拉取到memory内存中