728x90
1. Kafka란?
Apache Kafka는 고성능 데이터 파이프 라인, 스트리밍 분석, 데이터 통합 및 미션 크리티컬 애플리케이션을 위해 사용하는 분산 이벤트 스트리밍 플랫폼이다.
2. Kafka 생태계
상용 Kafka와 OpenSource Kafka 비교 장표
특 징 | Apache Kafka | Confluent For Kafka |
상용여부 | 오픈소스 | 상용 |
주요 제공 기술 | Message Queue | Kafka + Stream Processing |
서버 제공 여부 | 개별 서버 필요 | 서버 제공 |
Zookeeper 관리 여부 | Zookeeper 관리 필요 | Zookeeper 관리 불필요 |
다국어 개발 | 비 Java Client 지원 안함 - 추가 설치 필요 | C/C++, Python, Go, .NET 기본 지원 |
RestProxy | Confluent 제공 오픈소스 설치 필요 | RestProxy 지원 |
모니터링 | 별도 모니터링 설치 필요 | 모니터링 기능 지원 |
다양한 추가지원 | 별도 설치 혹은 개발 필요 | 다양한 Connector, MQTT프록시, Schema Registry, KsqlDB 기본 지원 |
기술지원 | 불가 | 가능 |
3. Kafka 특징
특 징 | 설 명 |
높은 데이터 처리량 |
• 대용량 실시간 로그 처리에 특화된 설계
• AMQP 프로토콜이나 JMS API 사용하지 않고 단순한 메시지 헤더를 지닌 TCP기반 프로토콜 사용으로 인한 오버헤드 감소
• 동기/비동기 처리
|
데이터 연동 (Kafka connect 사용) |
• 다양한 connector를 존재
• 데이터 소스 (AMQP, language, DB ..) 등 쉽게 연계
|
pull |
• 데이터를 처리능력만큼 broker로부터 가져오기 때문에 부하에 대한 부담이 적음
• Batch 방식으로 메시지 전송 가능
|
데이터 영속성 |
• 데이터를 디스크에 저장
• 데이터 보관 기간에 언제라도 데이터 접근 가능
• 특정 offset으로 이동하여 데이터 읽기 가능
|
분산시스템 |
• clustering과 scale out이 용이.
• clustering 을 기본으로 설계하기 때문에 SPOF가 발생해도 영향을 받지 않음
|
4. Kafka 활용 사례
활용 사례 | 설 명 |
분산큐잉시스템 | - 자원을 많이 사용하는 업무를 백그라운드 테스크 프로세서에 요청으로 자원 효율화 ex) LINE, Kakao, 배달의 민족 등 |
데이터 허브/버스 | - 데이터 업데이트 발생 시 해당 데이터를 사용하는 다른 서비스에 전파 ex) LUNE, Square 등 |
실시간 스트림 처리 | - 이벤트 발생 시 실시간으로 이벤트 처리 지원 ex) Netflix, Linkedin, Uber 등 |
로그 집계 | - 로그 집계 솔루션으로 사용, 로그 파일을 수집하여 처리를 위해 중앙 위치에 저장 ex) Uber, Kakao, Trivago 등 |
728x90
'Message Queue > Kafka' 카테고리의 다른 글
[Kafka]기본개념-2 (0) | 2024.07.26 |
---|---|
[Kafka]기본 개념-1 (0) | 2024.07.08 |
[Kafka]설 치 (0) | 2024.07.08 |