아파치 카프카 아파치 카프카

1. 카프카란?

아파치 카프카 이다 분산 이벤트 스토어 그리고 스트림 처리 플랫폼.

2. 주제란 무엇인가

데이터를 입력할 수 있는 공간을 토픽이라고 합니다.
데이터베이스의 테이블이나 파일 시스템의 폴더와 비슷합니다.

키를 지정하지 않으면 데이터가 라운드 로빈 방식으로 입력됩니다.
키를 지정하면 키의 해시 값을 사용하여 파티션을 획득하고 배포합니다.

파티션을 늘릴 수는 있지만 줄일 수는 없습니다.

레코드가 저장되는 시간을 지정할 수 있습니다.

3. 카프카 브로커

Kafka가 설치된 서버마다
3개 이상의 브로커를 구성하는 것이 좋습니다.

복제가 있는 만큼 많은 복제가 있습니다.
복제는 최대 브로커 수만큼 수행할 수 있습니다.

ISR(동기화 복제본)

고가용성을 위해 사용됩니다.
Kafka가 어떤 이유로 실패하면 팔로워 파티션이 리더를 계승합니다.

ack
0,1 또는 모두 중 하나를 선택할 수 있습니다.

0은 ack 없음을 의미합니다. 속도는 빠르지만 손실의 가능성이 있습니다.
1 ack를 수신합니다.
all 모든 팔로워 파티션에 저장되었는지 확인합니다.

복제 횟수가 증가하면 그에 비례하여 리소스 사용량도 증가하므로 적절한 복제 횟수를 유지하는 것이 중요합니다.

4. 파티셔닝(파티션)

생산자가 데이터를 보낼 때 메시지는 파티셔너를 통해 전달됩니다.

해시(메시지 키) = 파티션 번호
동일한 메시지 키는 동일한 파티션에 들어가는 것이 보장됩니다.

동일한 파티션에 순서대로 배치됩니다.
하나의 파티션 내에서 대기열처럼 순서대로 처리됩니다.

메시지 키가 없으면 라운드 로빈 방식으로 전달됩니다.

Partitioner 인터페이스를 구현하면 메시지를 보낼 파티션을 결정할 수 있습니다.

5. 지연

모니터링 지표입니다.

파티션에 입력된 데이터는 오프셋됩니다.
생산자는 계속 데이터를 입력하고 소비자는 계속 데이터를 가져옵니다.

지연은 소비자가 읽은 마지막 오프셋과 생산자가 삽입한 마지막 오프셋 간의 차이입니다.
주제에 여러 파티션이 있는 경우 각 파티션에 대한 지연이 있습니다.

현장에서 지연을 모니터링하면서 처리 속도가 충분한지 가늠할 수 있습니다.

6. 지연 모니터링 도구 Burrow

kafkaConsumer 개체를 통해 지연을 확인할 수 있지만 좋은 방법은 아닙니다.
Linkedin은 Kafka 지연을 효과적으로 모니터링하기 위해 Burrow라는 도구를 개발했습니다.

Burrow에는 세 가지 주요 특징이 있습니다.

Kafka 클러스터가 여러 개 있어도 하나의 Burrow로 모니터링할 수 있습니다.
상태로 제공됩니다.
상태는 Http API를 통해 제공됩니다.

7. 메시징 플랫폼 간의 차이점

메시지 브로커와 이벤트 브로커의 차이점

메시지 브로커
미들웨어 아키텍처로 사용됩니다.
메시징 플랫폼 및 인증 플랫폼과 같은 것은 미들웨어입니다.
메시지를 수신하고 적절하게 처리한 후 메시지는 짧은 시간 내에 삭제됩니다.

이벤트 브로커는 메시지를 삭제하지 않습니다.