MSK 이란
MSK (Amazon Managed Streaming for Apache Kafka)
- 완전관리형 Apache Kafka
카프카는 크게 Producer, Broker, Consumer 로 구성됩니다.
Kafka Cluster 부터 보시면 여러개의 Broker 로 구성되어있습니다.
각각의 Broker 가 하나의 서버라고 보시면 됩니다.
Kafka 는 실시간 데이터 플랫폼 또는 이벤트 스트리밍 플랫폼 입니다.
비동기 통신과 pub/sub 방식을 지원합니다.
Producer 는 메시지를 발행하는 서버
Consumer 는 메시지를 받아서 처리하는 서버
Producer 에서 메시지를 발행(Publisher) 하고
Consumer 에서 토픽 단위로 구독(Subscribe) 하고 메시지를 소비(Consume) 합니다.
여기 Consumer 는 pull 방식으로 동작합니다.
Consumer 서버가 메시지는 받을 수 있는 상태일 때, Broker 에 메시지를 요청해서 받습니다.
메시지 처리가 완료되면 Consumer 에서 acknowledge 사인을 broker 에 보내며, broker 에서 consumerGroup & topic 단위로 offset 을 기록합니다.
offset 은 어디까지 메시지를 읽었는지 나타는 숫자입니다.
Consumer 에서 처리한 메시지 수가 증가할 때마다 offset 을 Broker 에 있는 offset 을 증가시키는 것이죠.
API 통신과 비교하면 API 통신은 데이터를 주는 쪽에서 Push 하는 방식으로 일방적으로 데이터를 전달합니다.
반면, Kafka 를 사용한 Pull 방식은 받는 쪽에서 데이터를 가져갑니다.
이를 통해 비동기 방식으로 통신을 바탕으로 데이터를 균등하게 분배하고, 일정 부분의 부하 방지, 높은 처리량을 보장합니다.
Kakfa 특징
Data Consistency (데이터 일관성)
- Topic 단위의 데이터 스토어.
- 애플리케이션은 토픽을 통해 데이터를 주고받기 때문에 데이터 무결성을 보장.
Asynchronous Communication (비동기 통신)
- Produce to Broker, Broker To Consumer 비동기 통신 지원.
Message Persistence (메시지 유지)
- Topic Message 기본 7일 저장, re-read 또는 재처리 가능.
Scalability 과 Compatibility(확장성, 호환성)
- Topic 단위로 서비스 관리 가능하고 Topic 을 손쉽게 추가할 수 있음.
- MSK Connect Plugin 를 통해서 다른 자원과 연동이 용이함.
'Kafka' 카테고리의 다른 글
Kafka - Kafka Producing 성능 비교와 멱등성 조건 (0) | 2024.06.02 |
---|---|
kafka - Datadog Metrics Sink Connector (0) | 2023.08.10 |
댓글