카프카 개요 및 설명

서비스와 서비스끼리 혹은 DB, Redis 등이 서로 연결되다보면 너무 복잡한 구조가 만들어지고 이는 유지보수하기가 너무 어려운 결과물을 만들어낸다.

스크린샷 2023-10-15 오후 11.26.02.png

이런 문제를 해결하기 위해 링크드인에서 카프카라는 것을 만들어서 오픈소스로 제공하고 있다.

스크린샷 2023-10-15 오후 11.27.01.png

아파치 카프카는 Source Application과 Target Application의 결합을 약하게 만들어준다.

스크린샷 2023-10-15 오후 11.28.06.png

카프카는 토픽이라는 큐같은 개념을 이용하고 프로듀서는 큐에 정보를 적재하고 컨슈머는 토픽에서 정보를 꺼내간다.

스크린샷 2023-10-15 오후 11.28.37.png

또한 카프카는 고가용성을 보장해준다. 컴퓨터가 꺼져도 복구할 수 있음.

토픽이란?

카프카는 다양한 데이터를 적재할 수 있는데 토픽이라는 공간에 데이터를 적재한다.

카프카는 토픽 여러개 생성 가능

프로듀서 → 토픽 → 컨슈머 흐름으로 데이터 전송

하나의 토픽은 여러개의 파티션을 가질 수 있다.

하나의 파티션은 데이터를 저장할 수 있는 큐같은 개념인데 프로듀서가 데이터를 넣으면 끝에서부터 하나하나 차곡차곡 쌓이게 된다.

스크린샷 2023-10-15 오후 11.33.00.png

파티션에서 카프카 컨슈머가 하나씩 정보를 읽어간다 → 이 때 데이터가 삭제되지 않는다. 왜 삭제되지않을까?