데이터 소스와 싱크의 장애 허용 보장
데이터 소스와 싱크의 장애 허용 보장 (Fault Tolerance Guarantees of Data Sources and Sinks)
Flink의 장애 허용(fault tolerance) 메커니즘은 실패 발생 시에도 프로그램을 복구하여 계속 실행하게 합니다. 이러한 실패에는 머신 하드웨어 장애, 네트워크 장애, 일시적인 프로그램 오류 등이 포함됩니다.
출처: 문서
본문
Flink의 장애 허용 메커니즘은 실패 상황에서 프로그램을 복구하고 계속 실행합니다. 이러한 실패에는 머신 하드웨어 장애, 네트워크 장애, 일시적인 프로그램 오류 등이 포함됩니다.
Flink는 소스가 스냅샷(snapshotting) 메커니즘에 참여할 때에만 사용자 정의 상태에 대한 정확히 한 번(exactly-once) 상태 업데이트를 보장할 수 있습니다. 다음 표는 번들로 제공되는 커넥터와 함께 사용할 때 Flink의 상태 업데이트 보장 수준을 나열합니다.
각 커넥터의 문서를 읽어 장애 허용 보장의 세부 사항을 이해하시기 바랍니다.
| Source | Guarantees | Notes |
|---|---|---|
| Apache Kafka | exactly once | 버전에 맞는 적절한 Kafka 커넥터를 사용하세요 |
| AWS Kinesis Streams | exactly once | |
| RabbitMQ | at most once (v 0.10) / exactly once (v 1.0) | |
| Google PubSub | at least once | |
| Collections | exactly once | |
| Files | exactly once | |
| Sockets | at most once |
(end-to-end) 종단 간 정확히 한 번 레코드 전달을 보장하려면(상태 정확히 한 번 의미론 외에), 데이터 싱크도 체크포인트(checkpointing) 메커니즘에 참여해야 합니다. 다음 표는 (정확히 한 번 상태 업데이트를 가정한) 번들 싱크와 함께 사용할 때 Flink의 전달 보장 수준을 나열합니다:
| Sink | Guarantees | Notes |
|---|---|---|
| Elasticsearch | at least once | |
| Opensearch | at least once | |
| Kafka producer | at least once / exactly once | 트랜잭션 프로듀서(v 0.11+)로 exactly once |
| Cassandra sink | at least once / exactly once | 멱등 업데이트에 대해서만 exactly once |
| Amazon DynamoDB | at least once | |
| Amazon Kinesis Data Streams | at least once | |
| Amazon Kinesis Data Firehose | at least once | |
| File sinks | exactly once | |
| Socket sinks | at least once | |
| Standard output | at least once | |
| Redis sink | at least once |