[kafka] Docker로 카프카 실행하기 (KRaft 모드)
·
Apache Kafka
Docker를 통해 Kafka를 실행해 보자📌 서론이전에도 kafka 세팅에 대해 포스팅을 한 적이 있지만 가장 최근에 새롭게 세팅을 하면서 알게 된 점들을 정리해 봤다.특히 port를 설정할 때 내부, 외부로 구성하는 점이 굉장히 중요했다. 이 부분은 실수로 잘못 설정하면 외부에서는 아예 접근조차 불가능했다.세팅은 loacl에서 진행했으며 docker-compose를 사용해서 m2 max 맥북에서 실행했다.만약 SpringBoot에 연결하는 방법이 궁금하다면 이 글을 확인하자 (SpringBoot3.x.x) [Kafka] SpringBoot3.x.x에서 Kafka 연동하기스프링 부트 3.1.2에 Kafka를 세팅해 보자📌 서론이전 포스트를 통해 docker-compose로 Kafka를 띄웠다.이번..
[kafka] Spring실행 시 consumer 연결문제 해결
·
Apache Kafka
SpringBoot 설정을 잘못해서 kafka 연결이 안 되는 문제를 해결했다. 📌 서론 이번 포스트는 SpringBoot의 application.yml에 kafka 설정을 잘못해서 오류가 발생한 부분을 수정한 내용이다. 발생했던 오류는 스프링 서버를 실행했을 때 consumer의 연결이 불가능했던 문제다. 1. SpringBoot에 KafkaListener 코드를 작성하자 kafka를 실행했는데 에러가 발생했다. 이건 연결 에러인데 로그만 봐도 Consumer관련 오류인 것을 알 수 있다. [Consumer clientId=consumer-error-handler-group-1, groupId=error-handler-group] Bootstrap broker localhost:9092 (id: -1 ..
[kafka] 스프링부트와 kafka를 이용한 slack 예외알림 구현
·
Apache Kafka
SpringBoot에서 kafka를 통해 슬랙에 에러 알림을 보내보자 📌 서론 이번 포스트를 읽기 전 2가지 사항을 모두 완료했는지 확인해 보자 1. Kafka 세팅 2. 슬랙 webhook 세팅 이번 포스트에서는 아래와 같은 작업을 하는 코드를 알아볼 것이다. 1. 예외가 발생하면 SpringBoot에서 kafka로 메시지를 produce 한다. (이전 포스트에서 확인가능) 2. SpringBoot내부에 작성한 kafkaListener코드를 통해 이 예외 메시지를 consume 한다. 3. kafkaListener에서는 slack의 webhook url로 메시지를 보내서 알림이 울리도록 한다. 1. 먼저 SpringBoot에 kafka를 연동하자 [Kafka] SpringBoot3.x.x에서 Kafka..
[Kafka] 슬랙 webhook 설정하기 (kafka에서 호출)
·
Apache Kafka
슬랙의 WebHook 세팅하기 📌 서론 이전 포스트를 통해 SpringBoot에 Kafka 설정을 완료했다. Slack에 알림 메시지를 띄우기 위해서는 webhook url이 필요하다. 이번 포스트에서는 Slack에서 webhook url을 발급받는 방법을 알아보자. 이번 포스트에는 Kafka와 관련된 것이 하나도 없지만 세팅한 이유가 Kafka에서 webhook을 사용해서 메시지를 보내기 위함이다. 이전 포스트에서 이어지는 내용이라는 점을 알아줬으면 좋겠다. [Kafka] SpringBoot3.x.x에서 Kafka 연동하기 스프링 부트 3.1.2에 Kafka를 세팅해 보자 📌 서론 이전 포스트를 통해 docker-compose로 Kafka를 띄웠다. 이번 포스트에서는 SpringBoot3.1.2에 세..
[Kafka] SpringBoot3.x.x에서 Kafka 연동하기
·
Apache Kafka
스프링 부트 3.1.2에 Kafka를 세팅해 보자📌 서론이전 포스트를 통해 docker-compose로 Kafka를 띄웠다.이번 포스트에서는 SpringBoot3.1.2에 세팅한 카프카를 연결하고 우리가 원했던 대로 예외가 발생하면 예외 메시지를 카프카의 producer로 발행한 다음 docker-desktop의 콘솔을 통해 consumer로 메시지를 잘 받는지 확인했다.이번 포스트에서는 그 과정을 설명한다.이전 포스트를 통해 docker-compose로 kafka를 실행하고 오도록 하자 (M1 mac 기준) [kafka] Docker로 카프카 실행하기 (KRaft 모드)Docker를 통해 Kafka를 실행해 보자📌 서론이전에도 kafka 세팅에 대해 포스팅을 한 적이 있지만 가장 최근에 새롭게 세..
[Kafka] Docker로 Kafka 세팅하기 (Kraft 방식, M1 Mac)
·
Apache Kafka
M1 Mac에 docker를 사용해서 Kraft 방식의 Kafka를 세팅해보자 📌 서론 레시피아에서 긴급한 오류가 발생하면 Slack을 통해 알림이 오도록 하기위해 Kafka를 사용하기로 했다. 상용 서버에는 AWS의 MSK를 사용하고 로컬에는 docker-compose를 통해 세팅하기로 결정했고 결정에 따라 Local 맥북에 docker를 사용해서 Kafka를 세팅했다. 이번 포스트에서는 docker를 사용하여 Kafka를 세팅하는 방법을 설명하도록 하겠다. 이번 카프카 설정에서 Karl님 블로그 글의 도움을 정말 많이 받았습니다.(감사합니다.😊) Karl님의 블로그에 들어가서 작성된 글을 따라해 보신 후 제 글도 같이 읽어보신다면 큰 도움이 될 것입니다. Docker Compose 로 Silicon ..
Kafka(카프카) 메시지 포맷(message format)의 구조와 특징 이해하기
·
Apache Kafka
이번 포스트에서는 카프카의 메시지 포맷에 대해서 알아보자 📌 서론 카프카 메시지는 데이터를 주고받는 데 사용되는 기본 단위다. 카프카를 이해하고 잘 사용하기 위해서는 이 메시지 구조를 잘 알아야 한다. 기본적으로, 카프카 메시지는 두 가지 주요 구성 요소를 가지고 있다. 예를 들어, 로그 데이터를 Kafka로 전송한다고 가정할 때, 각 로그의 '키'는 로그의 출처나 타입을 나타낼 수 있고, '값'은 실제 로그 내용이 될 수 있다. 이렇게 데이터를 구분하면 효율적으로 데이터를 관리하고 처리할 수 있다. 1. Kafka 메시지의 구조를 간단히 이해하기 Kafka 메시지의 기본 구조를 이해하는 것은 Kafka를 사용하는 데 있어서 가장 기본적이고 중요하다. 키와 값의 구조를 이해하면, Kafka가 데이터를 어..
Kafka(카프카)의 고가용성 및 대규모 데이터 처리방법
·
Apache Kafka
Apache Kafka(아파치 카프카)의 고가용성 및 대규모 데이터 처리방법을 예시를 통해 쉽게 이해해 보자 📌 서론 Kafka는 프로듀서와 컨슈머 간의 원활한 데이터 흐름을 가능하게 하며, 데이터 무결성, 확장성, 높은 가용성을 보장한다. 이번 포스트에서는 Kafka의 복잡한 설계에 초점을 맞추어 파티션 메커니즘, 컨슈머 그룹, 클러스터 구성의 복원력을 살펴보도록 하자. 분산 환경에서 대규모 데이터를 처리하기 위해 Kafka의 내부 작동 원리를 이해하는 것은 정말 중요하다. 시나리오 1: 고가용성을 위한 Kafka 클러스터 구성 토픽 구성: UserActivity UserActivity는 사용자 활동 데이터를 위한 Kafka 토픽이다. 이 토픽은 사용자의 다양한 활동을 기록하고 저장하는 데 사용된다. ..