지난 포스팅에 이어서, 아파치 카프카에서 가장 중요한 개념인 복제(Replication)에 대해 알아보겠습니다. 복제는 카프카를 장애 허용 시스템(Fault Tolerant System)이라고 할 수 있는 원동력입니다. 장애가 발생해도 데이터를 유지하고 안전하게 사용할 수 있게 해주죠.
카프카 브로커의 복제(Replication)
카프카의 데이터 복제는 파티션 단위로 이루어집니다. 토픽 생성 시 파티션의 복제 개수 (Replication factor)도 같이 설정 되는데, 디폴트로 브로커에 설정된 옵션 값을 따릅니다.
- 복제 개수의 최솟값은 1로 복제가 없는 상태를 의미하고, 최댓값은 브로커의 개수입니다.
- 카프카를 운영할 때 2 이상의 복제 개수가 존재해야 카프카를 사용하는 의미가 있다고 할 수 있습니다.
복제된 파티션은 프로듀서/컨슈머와 직접 통신하는 리더(Leader)와 복제 데이터를 가지는 팔로워(Follower)로 구성됩니다.
브로커에 장애가 발생한다면
리더로 사용되고 있는 브로커에 장애가 발생하면, 팔로워 파티션 중 하나가 리더 지위를 넘겨받으며, 이를 승급이라고 합니다. 그렇기 때문에 데이터를 일정하게 유지할 수 있으며, 토픽마다 복제 개수를 다르게 설정할 수도 있습니다.
- 데이터 유실보다 데이터 처리 속도가 중요하다면 1~2로 설정할 수 있습니다.
- 금융 데이터와 같이 처리 속도보다는 데이터 일관성이 중요한 곳에서는 3으로 설정하기도 합니다.
마치며
이번 시간에는 카프카 브로커의 복제(Replication)에 대해 간단하게 알아보았습니다. 장애가 발생해도 데이터가 유실되지 않도록 설정하는 방법과 데이터가 유실된다해도 데이터 처리 속도가 중요한 경우의 설정 방법을 배웠습니다.
다음 시간에는 리더 파티션과 팔로워 파티션이 싱크된 상태, ISR(In-Sync-Replicas)에 대해 알아보겠습니다.
답글 남기기