-
apache kafka 개요Data Base/Kafka 2022. 9. 2. 18:55
단방향 데이터 전송
데이터를 전송하는 Source App과 데이터를 받는 Target App이 있었다. 초기에는 간단하게 단방향 데이터 송신을 수행하였다. 그런데 시간이 지날 수록 Source App과 Target App이 많아 지면서, 데이터를 전송하는 Line이 매우 복잡하게 되었다.
많은 수의 Source App 과 Target App
문제는 Source App 갯수와 Target App 갯수가 많아 질 수록 서로 데이터를 전송하는 Line이 많아 지게된다. 데이터 전송 Line이 많아지게되면 배포와 장애에 대응하기 어려워 진다.
Before Kafaka
또한 데이터를 전송할 때 프로토콜 포맷의 파편화가 심해졌다. 그리고 추후에 데이터에 포맷 내부에 변경사항이 있을때 유지 보수가 매우 어려워 졌다.
Before Kafka
apache kafka는 이런 복잡함을 해결하기 위해 오픈소스로 개발되었다.
Kafka features
apache kafka는 Source App과 Target App의 결속을 약화하기 위해 만들어졌다. 이제 Souce App은 apache kafka에 데이터를 전송하게 되고 Target App은 apache kafka에서 데이터를 가져오면 된다.
Source App에서 가져올수 있는 데이터 형태에는 거의 제한이 없다. (json,tsv,avro,etc)
Topic
kafka에는 여러 데이터를 담는 Topic이라는 개념이있다. 쉽게말에 Queue형태라고 생각하면 된다. Queue에 데이터를 넣는 역할은 Producer가 하고 Queue에서 데이터를 가져가는 역할은 Consumer가한다.
Producer와 Consumer는 라이브러리로 되어 있어서 Application에서 구현이 가능하다. 요약하자면 kafka는 아주 유연한 Queue역할을 한다고, 생각하면 된다.
이런 data flow에 있어서 kafka는 fault tolerant 즉 고가용성으로서 서버에 이슈가 생기거나 갑자기 전원이 내려간다던가 하는 상황에서도 데이터를 손실없이 복구할 수 있다.
또한 kafka는 낮은 지연과(latency)과 높은 처리량(Throughput)을 통해 효과적으로 데이터를 많이 처리할 수 있다.
[출처- https://youtu.be/waw0XXNX-uQ]
'Data Base > Kafka' 카테고리의 다른 글
apache kafka 핵심요소 3가지(Broker, Replication, ISR) (0) 2022.09.06 apache kafka Topic (0) 2022.09.05