Infra/Kafka 3

[Kafka] Broker

브로커란 ? 카프카가 설치되어 있는 서버 단위 보통 3개 이상의 broker로 구성하여 사용하는 것을 권장 파티션이 1개이고 replication이 1인 topic이 존재하고 브로커가 3대라면 3대 중 1대에 해당 토픽의 정보(데이터)가 저장됨 replication replication이란, partition의 복제를 뜻함 replication이 1이라면 partition은 1개만 존재 replication이 2이라면 partition은 원본 1개와 복제본 1개 존재 replication이 3이라면 partition은 원본 1개와 본제본 2개 존재 다만, 브로커 개수에 따라서 replication 개수가 제한됨 ⇒ 브로커의 개수보다 클 수 없음 ! 사용 이유 ⇒ partition의 고가용성을 위해서 ex..

Infra/Kafka 2023.01.21

[Kafka] Topic

토픽이란? 카프카에 다양한 데이터가 들어가는 공간 여러개 생성 가능 데이터베이스의 테이블이나 파일시스템의 폴더와 유사한 성질 프로듀서가 데이터를 넣고 컨슈머가 가져가는 구조 이름을 가질 수 있음 (목적에 맞게 담는 데이터를 정확하게 명시하면 유지보수 편리해짐) 토픽의 내부 여러개의 파티션으로 구성 파티션 번호는 0번부터 시작 큐와 같이 데이터가 쌓임 컨슈머는 가장 오래된 순서대로 데이터 가져가며, 더 이상 가져갈 데이터가 없으면 들어올 때까지 대기함 컨슈머가 record 들을 가져가도 데이터 삭제되지 않고 파티션에 그대로 남아 있음 파티션에 남아있는 데이터는 새로운 컨슈머가 붙었을 때 다시 0번부터 가져가서 사용 (아래의 조건 존재) 컨슈머 그룹이 달라야 함 auto.offset.reset = earli..

Infra/Kafka 2023.01.15

[Kafka] Apache Kafka 개요

아파치 카프카는 아파치 소프트웨어 재단이 스칼라로 개발한 오픈 소스 메시지 브로커 프로젝트이다. 이전의 데이터 통신 구조가 서비스가 늘어날수록 데이터 파편화와 유지보수가 어려워져 이를 개선하기 위해 개발되었으며, 소스 애플리케이션과 타켓 애플리케이션의 결합도를 약하게 하는 것이 목적이다. 소스 애플리케이션은 카프카로 데이터를 전송하고 타켓 애플리케이션은 카프카에서 데이터를 가져와 사용하는 형태이다. 소스 애플리케이션은 클릭로그, 결제로그 등을 보낼 수 있고 타켓 애플리케이션은 로그적재 및 처리 등의 역할을 할 수 있다. 전달 데이터 포맷은 json, tsv 등 거의 제한이 없으며 카프카는 아주 유연한 큐 역할을 한다고 볼 수 있다. 카프카의 장점으로는 1. 고가용성으로서 서버가 이슈가 생기거나 데이터 손..

Infra/Kafka 2023.01.15