Kafka
-
Kafka 클러스터 메세지 발행 및 문제 해결Kafka 2021. 10. 4. 01:46
1) 서론 단순 공부 및 테스트 위해 local 환경에서 broker 4 + zookeeper 3개의 서버를 사용합니다. 깊이 있는 설정은 배제하고, 전체적인 흐름 파악에 집중했습니다. 이 글에서는 카프카 클러스터의 설정 방법은 설명하지 않습니다. 궁금하신 분들은 아래 글을 참고해주세요. Kafka 클러스터 구성 및 장애 해결 Zookeeper 클러스터 및 컨트롤러 선출 전체적인 구조입니다. 꼭 8082 포트가 controller가 되는건 아닙니다. 단순 예시입니다. 2) 설정 최소한의 설정만 합니다. producer / consumer.properties (동일) // 연결할 broker 주소들 bootstrap.servers=localhost:8081,localhost:8082,localhost:80..
-
Zookeeper 클러스터 및 컨트롤러 선출Kafka 2021. 9. 19. 01:47
1) 서론 간단하게 zookeeper 3개의 서버를 실행시켜 클러스터로 만듭니다. 그리고 zookeeper에 등록되는 컨트롤러 브로커의 장애 발생 시 어떻게 되는지 살펴봅니다. +) 공부하는 입장에서 작성하는 "Hello World" 수준의 글입니다. 내용에 잘 못된 점이 있다면, 언제든지 댓글 남겨주세요! 2) Zookeeper zookeeper는 분산 애플리케이션들의 관리를 도와주는 역할을 합니다. 개발자로 하여금 비즈니스 로직에만 집중할 수 있게 하고, 클라이언트(kafka) 관리는 zookeeper가 대신해줍니다. 만약 zookeeper가 관리해주지 않는다면, 거대한 클러스터 애플리케이션의 설정과 동기화 등을 직접 관리해야 할 겁니다. kafka와 연동하여 서비스할 때 아래의 동작을 하게 됩니다...
-
Kafka 클러스터 구성 및 장애 해결Kafka 2021. 9. 12. 20:44
1) 서론 주키퍼(zookeeper) 1개 + 카프카(kafka) 3개 구성의 클러스터를 구성합니다. 학습에 목적을 두고 있기 때문에 최대한 간단한 클러스터를 구성했습니다. 이를 통해 카프카, 주키퍼의 설정 방식을 공부합니다. +) 학습과정의 블로그이므로, 오류는 댓글로 남겨주시면 감사히 수정하겠습니다! 2) Zookeeper 1대의 주키퍼 서버를 사용한다면, 더 설정할 것은 없습니다. 아래의 명령어를 통해 주키퍼를 먼저 실행합니다. $ bin/zookeeper-server-start config/zookeeper.properties or $ brew services start zookeeper 3) Kafka 카프카 브로커의 클러스터를 구성합니다. 우선, config/server.properties를 ..
-
(Kafka) 객체를 JSON 타입으로 넘겨보자Kafka 2021. 9. 1. 17:22
1) 서론 Kafka는 메시지 브로커를 이용해 서로 다른 프로젝트 사이에 메시지를 주고받을 수 있습니다. 이를 통해 비동기적인 처리를 할 수 있는데요. 메시지를 넘겨줄 때 int, string 등 타입을 지정해서 넘기는 것이 가장 간단한 방법입니다. 하지만 이러한 방식은 하나의 데이터 객체를 가지고 있더라도, 각각의 타입을 가진 직렬화 방식을 사용해야 합니다. 즉 개수도 많아지고, 어떤 목적으로 메시지를 전달하는지 명확히 파악하기 어렵다고 생각합니다. 그래서 모든 메세지 전달을 JSON 타입으로 통일하여 전달하고, 직렬화에 필요한 객체의 정의 방법을 기록합니다. 그리고 해당 과정에서 발생한 오류를 기록합니다. 아직 코린이 입니다. 혹시나 더 좋은 방법이나, 틀린점이 있다면 알려주세요. 2) 목적 사용자가..
-
Kafka, @Async 비동기 처리 맛보기Kafka 2021. 8. 16. 16:50
서론 이 글의 계기는 이렇습니다. 특정 게시글을 조회하고, 조회 수를 올려준다. 하지만 해당 게시글에 트래픽이 몰리고, 조회 수를 처리하는데 자원을 낭비해야 할까? 일단 글부터 보여주고, 조회 수는 천천히 반영해도 되지 않을까? 그래서 게시글을 조회 후 빠르게 사용자에게 보여주고, 조회 수는 Kafka, @Async를 사용해서 다른 서버에서 비동기로 처리하는 것이 더 좋지 않을까 생각했습니다. Hello World 수준의 예제입니다. 오류가 있다면 언제든지 댓글 남겨주세요! Kafka Kafka는 크게 producer, consumer, topic으로 이루어진 데이터 스트리밍 플랫폼입니다. (앞으로 producer: 생산자, consumer: 소비자로 부르겠습니다.) 생산자가 메시지를 만들어내고, 소비자..