아래 포스트는 airbnb의 kafka meetup 발표내용을 토대로 정리하였습니다.
youtube url : https://www.youtube.com/watch?v=-PmKeOpfE54
Kafka at Airbnb
AWS에서 0.11 버젼의 kafka를 사용하고 있으며 10개 이상의 cluster과 500개 이상의 broker로 구성되어 있다. 3000개 이상의 topic들이 사용되어지고 있으며 모든 데이터의 양의 PB단위 이상이다. 아직 0.11버전이지만 다음달(2019년 11월)에는 그 이상의 버젼을 사용할 것이라고 한다.
위 데이터 파이프라인 아키텍쳐에서 Rest Proxy는 여러 language로 작성된 application에서 나온 데이터를 kafka로 prodcue하기 위한 역할을 하는데 Ruby로 작성되었다.
Data를 최종적재하기 위한 용도로 Spark streaming과 apache Flink를 주로 사용하고 있으며 그 외 많은 수의 consumer들이 각각의 용도에 맞게 consume하고 있다.
SpinalTap - Change data capture service
Capturing Data Evolution in a Service-Oriented Architecture
Airbnb에서 데이터의 변화를 감지하기 위해 아래와 같은 6가지의 조건을 만족하는 시스템이 필요했다.
- Loss-Less : at least once(적어도 한번이상) 만족
- Scalable : 확장가능하도록
- Performant : low latency, high throughput
- Consistent : Ordering(순서보장)
- Fault Tolerant : Automatic failover, HA구성
- Extensible : 데이터 source input/output이 확장가능하도록
위 6가지를 만족하는 시스템을 아래와 같이 workflow로 구성하였다.
Data store(db 등)로 부터 데이터 변화를 확인하면 SpinalTap으로 가게되고 데이터의 변화를 일부 파싱하여 변경, kakfa로 produce하는 형태를 띈다.
SpinalTap에서는 Event에 대해 Client service에서 처리가능하도록 filtering, Mapping처리를 통해 kafka로 data를 변환하여 produce한다.
'빅데이터 > Kafka' 카테고리의 다른 글
KSQL 소개 ppt (0) | 2019.10.16 |
---|---|
KSQL에러 extraneous input 'properties' expecting (0) | 2019.10.16 |
링크드인에서 사용중인 커스텀 Kafka 공개 (1) | 2019.10.15 |
Kafka의 KSQL 컨셉, 아키텍쳐, 용어, 커스텀 function 적용하는 방법 (0) | 2019.10.11 |
아파치 카프카 테스트용 data generator 소개 - ksql-datagen (0) | 2019.10.10 |
KSQL - Docker을 사용한 KSQL server, cli 설치 및 실행 (0) | 2019.10.08 |