

# 数据源和接收器的容错保证

> 译者：[flink.sojb.cn](https://flink.sojb.cn/)


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 | 至少一次 |  |

