티스토리 뷰

Spring

Kafka 적용일기 1..

Shmoon 2019. 11. 8. 09:24

일전에 어느 회사 이력서 넣었다가 광탈한 적이 있었다.

Kafka를 사용한 푸쉬 메시지 전송을 구축하는 내용이었는데

광탈하기도 했고 옵저버 패턴과 비교하기에 좋고 여기저기 적용하기 좋은 모듈인 것 같아 개념정리와 스프링에 적용해보려고 한다.

 

오늘은.. 카프카 문서 해석을 해보도록 하겠다.

 

https://kafka.apache.org/intro

 

Apache Kafka

Apache Kafka: A Distributed Streaming Platform.

kafka.apache.org

카프가는 주로 두가지 타입의 프로그램에 사용된다.

1. 실시간 데이터를 받아올만한 시스템이나 어플리케이션시스템 또는 애플리케이션간에 데이터를 안정적으로 가져 오는 실시간 스트리밍 데이터 파이프 라인 구축

2. 데이터를 변화에 반응하는 실시간 스트리밍 어플리케이션

 

두가지에 적당하다고 한다.

당장 생각나는건 

1. 모니터링 시스템

2. 실시간 방송 정도 생각이 나는군.

 

사전 개념들

1. Kafka는 여러 데이터 센터에 걸쳐있는 하나 이상의 서버에서 클러스터로 실행됩니다.

2. Kafka 클러스터는 토픽이라는 카테고리로 레코드 스트림을 저장합니다.

3. 각 레코드는 키, 값 및 타임 스탬프로 구성됩니다.

 

 

카프카는 4개의 코어 api가 있습니다

1. 프로듀서 API를 사용하면 응용 프로그램에서 하나 이상의 Kafka 주제에 레코드 스트림을 게시 할 수 있습니다. (Producer API)

2. 소비자 API를 통해 응용 프로그램은 하나 이상의 주제를 구독하고 해당 주제에 대해 생성 된 레코드 스트림을 처리 할 수 있습니다. (Consumer API)

3. Streams API를 통해 애플리케이션은 스트림 프로세서 역할을하여 하나 이상의 주제에서 입력 스트림을 소비하고 하나 이상의 출력 주제로 출력 스트림을 생성하여 입력 스트림을 출력 스트림으로 효과적으로 변환합니다. (Streams API)

4. Connector API를 사용하면 Kafka 주제를 기존 응용 프로그램이나 데이터 시스템에 연결하는 재사용 가능한 생산자 또는 소비자를 구축하고 실행할 수 있습니다. 예를 들어, 관계형 데이터베이스에 대한 커넥터는 테이블에 대한 모든 변경 사항을 캡처 할 수 있습니다.(Connector API)

 

이거 읽고 그림 읽고 이해 안하면 계속읽어 봐야한다. 

음 쫌 읽어보니 Stomp Socket 구성과 매우 비슷하다. 내부적인 처리는 전혀 다르겠지만 특정 동작을 하는 publisher와 동작에 대한 응답을 서버에서 subcribe한 socket채널에 한번에 싹다 뿌리는 모듈을 이미 만들어봐서 어떤식으로 돌아가는지 이해하긴 매우 편하네. 내부 동작을 어떻게 하나 좀더 읽어보자. 

 

새로운 플젝을 시작해버렸자너??.. 다른것부터 포스팅 해야겠다

 

'Spring' 카테고리의 다른 글

Docker 적용하기 (Spring Boot)  (0) 2019.11.27
Docker 적용하기 (Mariadb)  (0) 2019.11.26
Project Module  (0) 2019.11.21
Java Builder Pattern  (0) 2019.11.05
Spring Security 적용  (0) 2019.10.29
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/05   »
1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30 31
글 보관함