데이터 소스와 싱크의 장애 허용 보장

데이터 소스와 싱크의 장애 허용 보장 (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

더 알아보기 (Learn more)