2020/04
-
[Kafka 101] 스키마 레지스트리 (Schema Registry)개발자 라이프/카프카 2020. 4. 26. 13:25
들어가며 카프카는 메시지를 보내는 프로듀서와 메시지를 복사해오는 컨슈머, 그리고 프로듀서와 컨슈머 사이에서 메시지를 중계하는 브로커로 구성됩니다. 이러한 카프카의 구조는 메시지의 송신자와 수신자 사이의 직접적인 관계를 끊음으로써 구조적인 결합도를 낮추는 장점이 있습니다. 하지만, 반대로 직접적인 관계가 끊어짐에 따라 발생하는 이슈도 있습니다. 이번 글은 카프카에서 발생할 수 있는 운영 이슈와 그 이슈를 해결할 수 있는 스키마 레지스트리(Schema Registry)에 관하여 정리합니다. 스키마 레지스트리 (Schema Registry) 스키마 레지스트리는 카프카 클라이언트 사이에서 메시지의 스키마를 저장, 관리하는 웹 어플리케이션입니다. 그리고 스키마 레지스트리는 많은 카프카 개발자와 운영자들이 카프카 ..
-
[Kafka 101] 카프카 컨슈머 (Kafka Consumer)개발자 라이프/카프카 2020. 4. 12. 22:28
들어가며 카프카의 메시지 파이프라인은 프로듀서에서 시작해서 브로커를 통해 컨슈머로 끝나게 됩니다. 이번 글은 카프카 메시지 파이프라인의 마지막 부분인 컨슈머에 관해 전반적으로 설명합니다. 1. 카프카 컨슈머 컨슈머는 컨슈머 API와 그것으로 구성된 애플리케이션을 말합니다. 일반적으로 컨슈머가 토픽을 구독(Subscribe) 혹은 읽는다(Read)고 하는데, 이는 컨슈머가 토픽 파티션에 저장된 메시지들을 가져오는 것을 말합니다. 카프카 컨슈머의 다음 3가지 특징을 통해 더욱 효율적이고 유연한 메시지 구독 기능을 제공합니다. Polling 구조 단일 토픽의 멀티 컨슈밍 컨슈머 그룹 Polling 구조 일반적으로 다른 메시징 큐는 메시지 큐에서 메시지를 Push 합니다. 카프카 구성 요소로 예를 들면 브로커가..
-
[Kafka 101] bootstrap.servers 설정에 관하여 (Inside of bootstrap.server)개발자 라이프/카프카 2020. 4. 12. 19:03
들어가며 카프카 클라이언트, 그 중 대표적으로 프로듀서와 컨슈머는 메시지를 발행, 구독하기 위해 필수로 bootstrap.servers 설정을 합니다. 하지만 이 bootstrap.servers 설정은 카프카 클러스터를 구성하는 전체 브로커에 대해 설정해주지 않아도 클라이언트는 각자의 브로커 자원 위치를 알고 작업을 수행합니다. 이번 글은 클라이언트의 bootstrap.servers 설정과 이 설정에 관한 내부 작동에 관하여 설명합니다. 카프카의 구조적인 특징 카프카 클러스터의 가장 큰 특징은 각 브로커들이 클러스터 전체 데이터의 일부분을 가지고 있다는 것입니다. 이는 카프카의 구성 요소인 토픽, 파티션과 깊은 연관이 있습니다. 논리적인 단위인 토픽은 메시지 저장의 단위인 파티션으로 쪼개져 구성되고, 파..
-
파과를 읽고서김김 라이프 2020. 4. 7. 09:27
리디북스 밤도둑 대여점이라는 이벤트로 책을 무료로 대여할 수 있는 쿠폰이 생겼다. 마침 딱딱한 개발 관련 글만 읽다보니 머리마저 딱딱해질 지경이었는데 잘 됐다 하고 볼 만한 소설을 살펴봤다. 그러다 이 파과 라는 소설을 골랐다. 가게에서도 자신있는 메뉴는 제일 위쪽하고 왼쪽 첫번째에 있는 것처럼 파과도 거기 있었을 뿐더러 아가미 라는 구병모 작가님의 이전 작품을 재밌게 읽었기 때문이었다. 파과는 킬러로 활동하고 있는 노부인에 대한 이야기다. 꽤 신선한 소재다. 다만 스토리는 킬러를 다루는 것들의 큰 범주를 넘어가지 않았다. 고독에서 시작해서 우연을 지나, 이전에 없던 인간미를 발견하는. 그래도 늙어버린, 이제는 상실의 시대를 살아가는 주인공이라서 그런지 보편적인 스토리 안에서 감정은 비교적 크게 출렁였다..