Kafka
-
mono-repo / multi-module 프로젝트에서 spring 자동 설정 이용하기Project 2023. 8. 22. 00:49
이번 글에서는 새로운 프로젝트를 진행하며 자동 구성을 이용해 여러 모듈에서 공통으로 쓸 수 있도록 설정한 부분에 대해 정리하도록 하겠습니다. 현재 프로젝트 구조는 아래와 같습니다. gradle을 이용한 mono-repo / multi-module 형식의 프로젝트 구조입니다. live_feed | | - LiveFeedCommon | - LiveFeedCrawler | - LiveFeedParser | - LiveFeedSaver | - LiveFeedService 각 모듈별로 각각의 역할을 갖고 있는데 이때, LiveFeedCommon 모듈의 경우 다른 모듈에서 공통으로 사용하는 부분을 묶어서 관리하고 싶었기 때문에 Common이라는 이름을 갖는 모듈로 만들었습니다. 대부분의 다른 모듈에서 모두 kafk..
-
카프카의 내부 동작 원리와 구현Backend/kafka 2023. 8. 9. 01:21
이번 글은 카프카의 내부 동작 원리에 대한 챕터에 대한 정리입니다. 1. 카프카 리플리케이션 카프카는 안정성을 확보하기 위해 카프카 내부에서 리플리케이션이라는 동작을 하게 됩니다. 카프카는 브로커의 장애에도 불구하고 연속적으로 안정적인 서비스를 제공함으로써 데이터 유실을 방지하며 유연성을 제공합니다. 카프카의 리더 파티션에 메시지를 보내게 되면 해당 메시지를 모든 리플리케이션 팩터 수만큼의 브로커에서 가질 수 있게 됩니다. 즉, 리플리케이션이 있는 경우 N개의 브로커 중에 N-1 까지의 브로커 장애가 발생해도 메시지 손실 없이 안정적으로 메시지를 주고받을 수 있습니다. [ 리더와 팔로워 ] 카프카는 내부적으로 모두 동일한 리플리케이션들을 리더와 팔로워로 구분하고, 각자의 역할을 분담시킵니다. 리더는 리플..
-
카프카 기본 개념과 구조Backend/kafka 2023. 7. 26. 02:42
이번 글은 카프카 관련 책 내용의 일부를 정리한 글입니다. 이후에도 주기적으로 정리해서 업로드할 예정입니다. 카프카를 구성하는 주요 요소 주키퍼 : 아파치 프로젝트 어플리케이션 이름입니다. 카프카의 메타데이터 관리 및 브로커의 정상상태 점검을 담당합니다. 카프카 : 아파치 프로젝트 애플리케이션 이름입니다. 여러 대의 브로커를 구성한 클러스터를 의미합니다. 브로커 : 카프카 애플리케이션이 설치된 서버 또는 노드를 의미합니다. 프로듀서 : 카프카로 메시지를 보내는 역할을 하는 클라이언트를 총칭합니다. 컨슈머 : 카프카에서 메시지를 꺼내가는 역할을 하는 클라이언트를 총칭합니다. 토픽 : 카프카는 메시지 피드들을 토픽으로 구분하고, 각 토픽의 이름은 카프카 내에서 고유합니다. 파티션 : 병령 처리 및 고성능을 ..