[KAFKA] Consumer
·
Backend
Consumer컨슈머란 브로커에게서 메시지를 받아 소비하는 역할을 맡았습니다.컨슈머는 컨슈머 그룹에 속해 있고 그 컨슈머 그룹단위로 파티션을 할당합니다. 이때 유의할점은 같은 컨슈머의 그룹에서 컨슈머는 같은 파티션을 할당받을 수 없습니다.컨슈머 갯수와 파티션 갯수파티션보다 컨슈머의 갯수가 많다면 컨슈머는 사용되지 않아 효율성이 떨어집니다.이떄 중요한점이 컨슈머 갯수가 파티션 갯수보다 높아야 한다는 점입니다.커밋과 오프셋오프셋이란 무엇일까요? 컨슈머가 어떠한 메시지를 즉 레코드를 조회한다고 생각해봅시다. 그 이후 다시 컨슈머가 메시지를 조회하려고 하는데 어느 위치까지 메시지를 조회했는지 알아야합니다. 이때 사용하는게 오프셋입니다.커밋은 오프셋을 카프카에 기록하는 행위입니다.  처음 접근하는 경우 / 커밋된..
[KAFKA] Producer
·
Backend
카프카 프로듀서 개요프로듀서는 브로커에 메시지를 전달하는 역할을 하며, 메시지는 Record라는 단위로 전송됩니다. Record를 설정하는 방법은 두 가지입니다:토픽과 값 설정: 메시지를 보낼 토픽과 값을 지정합니다.파티션 지정: 토픽뿐 아니라 메시지가 저장될 특정 파티션을 추가로 설정합니다.카프카 프로듀서 동작 순서직렬화: 메시지를 직렬화하여 전송 가능한 형태로 변환합니다.파티셔닝: 메시지가 어느 토픽의 파티션으로 갈지 결정합니다.배치 수집: 메시지를 바로 버퍼에 저장하지 않고, 배치 단위로 모읍니다.전송: Sender가 배치를 브로커로 내보냅니다.SenderSender는 별도의 스레드로 동작합니다. 즉, send()를 호출해 메시지를 보낼 때, Sender 스레드가 이를 독립적으로 처리합니다.처리량 ..
[KAFKA] KAFKA란?
·
Backend
저는 최근 MSA 프로젝트를 직접 설계하며 각 서버 간 이벤트 처리를 어떻게 해야하는지 고민하던 중, 카프카 라는 키워드를 만나게 되었습니다. 이 글에서는 카프카가 무엇인지? 어떠한 용도로 사용하는것인지 다뤄보고자합니다.카프카란?카프카는 대규모 데이터 스트리밍을 처리하기 위해 설계된 분산 이벤트 스트리밍 플랫폼입니다. 쉽게 말해, 엄청난 양의 데이터를 빠르고 안정적으로 주고받게 해주는 메시지 전달 시스템입니다. 카프카는 여러 구성 요소로 이루어져 있어요. 프로듀서(Producer), 컨슈머(Consumer), 주키퍼(ZooKeeper), 카프카 클러스터(Kafka Cluster), 그리고 브로커(Broker)가 그 주인공들입니다. 카프카 클러스터는 메시지를 저장하는 거대한 창고 같은 곳이라고 생각하시면 ..