본문 바로가기

카프카

카프카 컨슈머 spring boot로 구현하기 카프카 컨슈머를 Spring Boot로 어떻게 구현하는지 설명하도록 하겠습니다. 모든 소스 코드는 아래 링크를 통해 보실 수 있습니다. https://github.com/kang-seongbeom/kafka-consumer-example 오늘 구현할 것을 그림으로 나타내면 다음과 같습니다. 프로젝트 구조는 다음과 같습니다. consumer |_ config |_ KafkaConsumerConfig.class |_ TaskExecutorConfig.class |_ dto |_ PushRequestDto.class |_ service |_ PushRequestKafkaMessageListner.class |_ KafkaConsumerExampleApplication.class 1. 의존성 설정 org.spr.. 더보기
카프카 프로듀서 spring boot로 구현하기 카프카 프로듀서 spring boot로 구현하기 카프카 프로듀서를 Spring Boot로 어떻게 구현하는지 설명하도록 하겠습니다. 모든 소스 코드는 아래 링크를 통해 보실 수 있습니다. https://github.com/kang-seongbeom/kafka-producer-example 오늘 구현할 것을 그림으로 나타내면 다음과 같습니다. 프로젝트 구조는 다음과 같습니다. producer |_ config |_ KafkaProducerConfig.class |_ KafkaTopicConfig.class |_ SetProperties.class |_ controller |_ PushRequestController.class |_ dto |_ PushRequestDto.class |_ service |_ P.. 더보기
카프카 프로듀서와 컨슈머 docker shell 에서 테스트하기 이전 글에서 docker compose로 카프카 클러스터를 구축했습니다. 이전 글을 보고오지 않으신 분은 아래의 링크로 보고 오시기 바랍니다. https://ksb-dev.tistory.com/261 카프카 클러스터 docker compose로 구축하기 1. 왜 docker compose를 사용하는가? docker compose는 여러 개의 컨테이너가 동시에 동작할 때 필요합니다. 위 그림과 같이 카프카 클러스터를 구축할 때 보통 한 개의 주키퍼, 세 개의 카프카 브로커가 ksb-dev.tistory.com docker compose로 카프카 클러스터를 실행 시키면 다음과 같이 한 개의 주키퍼, 세 개의 카프카 브로커가 동작되고 있는 것을 볼 수 있습니다. 이 상태에서 카프카가 기본으로 제공하는 프로듀서.. 더보기
카프카 클러스터 docker compose로 구축하기 1. 왜 docker compose를 사용하는가? docker compose는 여러 개의 컨테이너가 동시에 동작할 때 필요합니다. 위 그림과 같이 카프카 클러스터를 구축할 때 보통 한 개의 주키퍼, 세 개의 카프카 브로커가 필요합니다. 이 네 가지가 동시에 동작되어야 하기 때문에, docker compose를 사용합니다. 2. docker compose 파일 작성하기 docker compose는 yml 확장자를 가지는 파일에 작성합니다. yml 파일의 특성상 띄어쓰기가 매우 중요하기 때문에, 작성할 때 주의하시기 바랍니다. 설명은 주석에 적어놨습니다. # docker compose 버전 version: "3" # compose로 한 번에 실행시킬 서비스들 정의 services: zoo1: # 사용할 이미.. 더보기
카프카란 무엇인가? - 2 카프카란 무엇인가? - 2 1. Replication Replication은 데이터 복제를 의미합니다. 데이터 복제를 통해, 하나의 브로커가 고장나더라도 다른 브로커가 그 역할을 대체할 수 있도록 합니다. 카프카는 Replication을 통해 고가용성(High Availability)을 보장합니다. 보통 클러스터 하나당 브로커 세 대 이상을 사용합니다. 위 그림과 같이 Replication이 1일 때의 모습입니다. 만약 Brocker #1이 고장나게 되면 데이터 처리를 하지 못하게 됩니다. 즉, 고가용성이 보장되지 못합니다. 카프카는 데이터 복제를 통해 문제를 해결합니다. Replication은 데이터 복제를 의미합니다. 카프카에서 Replication을 늘리게 되면, 데이터가 다른 브로커에 복제됩니다... 더보기
카프카란 무엇인가? - 1 1. 카프카를 왜 사용할까요? 설명하기 앞서 단어 두 가지를 정하고 가겠습니다. 이벤트 발생을 하는 곳을 프로듀서(Producer)라 하겠습니다. 발생된 이벤트를 사용하는 곳을 컨슈머(Consumer)라 하겠습니다. 카프카를 사용하기 이전에는 프로듀서와 컨슈머를 연결하는 데이터 파이프라인이 많았습니다. 카프카는 이 문제를 데이터의 중앙화로 해결했습니다. 또한, 그 연결 관계를 느슨하게 합니다. 발생한 이벤트를 카프카에서 낮은 지연(Latency)과 높은 처리량(Throughput)으로 처리할 수 있도록 보장합니다. 또한, 그림과 같이 모든 처리를 분산해서 처리할 수 있도록 합니다. 이러한 이유로 카프라를 분산 이벤트 스트리밍 플랫폼(Distribute Event Streaming Platform)이라 할.. 더보기