JUST WRITE

What is kafka 본문

MLOps/Kafka

What is kafka

천재보단범재 2022. 8. 9. 14:34

Kafka

What is Kafka?

Kafkapublish-subscribe messaging queue, messaging system이다.

Real-time streaming data architecture에 주로 사용된다.

Kafka는 안정적이고 좋은 performance로 Spotify, Uber, Netflix 등 다양한 회사에서 사용되고 있다.

Kafka는 분산 streaming 플랫폼으로 Fault tolerant, 장애에 대응할 수 있는 storage이기도 하다.

Kafka 특징

so fast

Kafka는 빠른 Data 이동을 위해 OS Kernel에 의존한다.

Zero-copy를 통해 속도를 개선한다.

Immutable commit log를 Disk에 순차적으로 저장한다.

이로 인해 Random disk Access와 slow disk seeking을 안하게 한다.

sharding을 통해 수평적 확장을 제공해 큰 Data Load가 가능하다.

streaming architecture

Kafka는 자주 real-time streaming system에 사용된다.

Kafka streaming과 같은 Kafka ecosystem은 실시간 분석할 능력을 갖추고 있다.

Storm, Flink, Spark Streaming과 같은 빠른 처리가 필요한 시스템과 연계가 가능하다.

출처 : http://cloudurable.com/blog/what-is-kafka/index.html

Decoupling Data Streams

Kafka는 middle layer로 실시간 Data pipline내 system간 의존성을 제거 한다.

System이 복잡해지면서 Data가 발생하고 처리하는 Server가 다양하고 많아졌다.

다양해진 Server간 통신 protocol를 맞추는 것에 큰 노력이 필요해졌다.

Kafka는 Server사이에 존재하여 Data를 전달하는 protocol를 단순하게 만들어줬다.

Scalable message storage

Kafka는 들어오는 message를 commit log로 저장하며 replication을 만들어 관리할 수 있다.

Partition과 Consumer를 적절하게 세팅하여 들어오는 message를 병렬로 처리할 수 있다.

Kafka는 Cluster로 구성할 수 있으며, replication을 두어 장애에 대응할 수 있다.

Polyglot

Kafka는 middle layer로 다양한 System과의 연계가 필요하다.

그러다 보니 C#, Java, C, Python, Go 등 그 외에 다양한 language를 지원한다.

Kafka ecosystem은 REST Proxy도 제공한다.

Schema Registry를 통해 Avro Schema도 지원한다.

Kafka 사용

  • 실시간 Streaming Data Pipline 구성
  • 실시간 Data 분석, transform, aggregate
  • Server간 Data 복제, 정합성(sync)
  • log aggregation, messaging, click-stream tracking

 

[주요 용어]

zero-copy

파일 전송 시 Kernel에서 Application으로 Context switch되지 않고 바로 전송 할 수 있도록 하는 방식
Context Switching과 복사본 갯수가 줄어 CPU 자원 낭비를 줄어들게 한다.

polygot

여러 언어에 능통한 자라는 뜻으로, IT에서는 여러 Programing Language로 작성가능 한 경우

[참고사이트]

728x90
반응형

'MLOps > Kafka' 카테고리의 다른 글

Kafka Broker Log 관리  (0) 2023.01.10
Ansible를 통한 Kafka 설치  (0) 2022.12.18
AWS EC2 Kafka 설치  (0) 2022.11.13
Kafka Topic  (0) 2022.10.03
Kafka Architecture  (0) 2022.08.14
Comments