Flink的容错机制在出现故障时恢复程序并继续执行它们。此类故障包括机器硬件故障,网络故障,瞬态程序故障等。
只有当源参与SNAPSHOT机制时,Flink才能保证只对用户定义的状态进行一次状态更新。下表列出了Flink与捆绑连接器相结合的状态更新保证。
请阅读每个连接器的文档,以了解容错保证的详细信息。
| 资源 | 保证 | 注意 | 
|---|---|---|
| Apache Kafka | 一次 | 为您的版本使用适当的Kafka连接器 | 
| AWS Kinesis Streams | 一次 | |
| 的RabbitMQ | 最多一次(v 0.10)/一次(v 1.0) | |
| Twitter Streaming API | 最多一次 | |
| Collections | 一次 | |
| Files | 一次 | |
| Sockets | 最多一次 | 
为了保证端到端精确一次的记录传递(除了精确一次的状态语义之外),数据接收器需要参与检查点机制。下表列出了Flink与捆绑接收器的传送保证(假设一次状态更新):
| 汇聚结点 | 保证 | 注意 | 
|---|---|---|
| HDFS rolling sink | 一次 | 实现取决于Hadoop版本 | 
| Elasticsearch | 至少一次 | |
| Kafka producer | 至少一次 | |
| Cassandra sink | 至少一次/恰好一次 | 只有幂等更新一次 | 
| AWS Kinesis Streams | 至少一次 | |
| File sinks | 至少一次 | |
| Socket sinks | 至少一次 | |
| Standard output | 至少一次 | |
| Redis sink | 至少一次 | 
