Please enable JavaScript.
Coggle requires JavaScript to display documents.
실시간 분배 플랫폼 distributing streaming platform (카프카 (클라이언트 종류 (Producer -…
실시간 분배 플랫폼
distributing streaming platform
카프카
message
카프카 데이터 기본단위
하나의 row, record이 생각할 수 있고, 메세지는 바이트의 배열로 이루어져있다. 메세지는 optional하게 key에 대한 metadata를 가지고 있다. key를 통해서 특정 파티션에 쓰여지는 것을 controll할 수 있다.
batch
메세지 모음
효율적으로 메세지를 처리하기 위해서 batch를 쓴다. 각 개별 메세지에 대한 네트워크 roundtrip을 통해서 overhead가 발생한다. batch을 통해서 이 부분을 줄일 수 있다.
Schema
카프카는 일관된 schema를 원한다. json, xml도 좋지만 version 호환성을 문제가 있다. 개발자들은 ㄴserialization 프레임워크인 Apache Avro를 좋아한다.
Topic과 partition
메세지는 topic으로 분류되고, topic은 여러개의 partition으로 나눠질 수 있다. 파티션내의 한 칸이 log
메세지는 순차적으로 씌여지고, 처음 offset 0부터 순차적으로 읽혀진다. 하나의 파티션은 수평적으로 복제된 파티션으로 존재할 수 있다.
클라이언트 종류
Producer
- 메세지를 생산하고 보내는 주체
consumer
- 메세지를 소비하는 주체
Broker와 Cluster
broker는 카프카의 서버이다. broker는 producer로 부터 받은 메세지에 offset으로 할당하고, 메세지를 disk에 있는 storage에 commit 한다. 또한 consumer에게 서비스를 제공한다. 파티션에 대한 fetch 요청을 보내는 것과, disk에 committed 된 메세지에 대한 정보를 제공한다. 카프카 브로커는 하나의 부분으로 cluster로 디자인되어있다. 하나의 클러스터내의 여러개의 브로커에서, 한개의 브로커는 ‘cluster controller’ 역할을 한다. controller는 broker의 장애에 대한 모니터링과 파티션을 브로커에 할당한다. 하나의 broker에 소유된 파티션은 그 파티션에 대해서 ‘leader partition’ 이라고 불린다.
할수 있는 것들
서비스 데이터베이스를 실시간 입수하는 방법들
Kafka를 이용한 마이크로서비스
Kafka를 사용하여 센터 내 데이터 버퍼링하여 제공
Logstash를 사용하여 Pull 방식으로 데이터를 중앙으로 전송하고 최종 데이터를 스토리지에 저장
kafka stremes
kafka project의 스트리밍 라이브러리
2016년에 릴리즈
기존의 다른 스트리밍 프레임워크에 비해 큰 이점들이 있다.
사례
일본Line - 내부 파이프라인에 적용
Peak time : 100만 메시지 /Sec
참고 동영상
11번가 Spring Cloud 기반 Micro Services 로 전환 개발 사례
https://youtu.be/sfOHAQNP8jo
Streaming Platform으로써 Apache Kafka - Kafka Summit 2017 NY
https://youtu.be/PtILI6v0ngY