Kafka
-
[Kafka 개발] 카프카 프로젝트에 컨트리뷰트 하는 방법개발자 라이프/카프카 2020. 9. 4. 11:09
들어가며 카프카의 공식 문서 중 How to contribute에 대한 (의역에 가까운) 번역 본입니다. 오역이 있을 수 있으니 틀린 부분 혹은 틀린 것 같은 부분은 댓글로 남겨주시길 바랍니다. 또한 작성일 기준으로 이후 변경된 부분이 있을 수 있습니다. 작성일과 최근 수정일을 참고해 주시길 바랍니다. 컨트리뷰트 하는 방법 사소한 코드 정리부터 커다란 기능 추가까지 모든 기여를 환영합니다. 자바 혹은 스칼라에 대해 몰라도 이 프로젝트에 기여할 수 있습니다. 가장 중요한 부분은 클라이언트 부분입니다. 우리-앞으로의 우리는 카프카 진영을 이야기합니다-는 좋은 품질의 코드와 문서를 가지는 여러 언어 클라이언트를 원합니다. 이건 카프카에 관한 툴들을 구성하는 것만큼 카프카 프로젝트에서 매우 중요한 부분입니다. ..
-
[Kafka] 카프카 매니저를 대체할 수 있을까?! AKHQ (Apache Kafka HQ)개발자 라이프/카프카 2020. 7. 16. 00:30
들어가며 카프카는 저장하는 데이터 리소스에 대한 blindness가 높아, 사용하다 보면 "괜찮은 운영 모니터링 툴이 없을까?" 하는 생각이 들곤 합니다. 그리고 그나마 가장 알려진 모니터링 툴이 카프카 매니저(현 CMAK)였습니다. 이번 글은 이 카프카 매니저를 대체할 수 있을만한(?) 카프카 운영 모니터링 툴인 AKHQ에 대해서 소개합니다. AKHQ 란? AKHQ(Apache Kafka HQ)는 오픈소스로써, micronaut 프레임워크를 기반으로 구성된 자바 웹 애플리케이션입니다. 현재(20.07.16) 1.4k 개의 star 수를 기록하고 있으며 다양한 기여를 통해 활발한 개발이 이뤄지고 있습니다. AKHQ의 주요 기능 AKHQ의 주요 기능들에 대해서 살펴보겠습니다. AKHQ는 카프카 1.0 버전..
-
[Kafka 101] 카프카 보안 - 인증과 인가 (Kafka Security - Authentication & Authorization)개발자 라이프/카프카 2020. 7. 5. 17:23
들어가며 기본적으로 카프카는 어느 누구나 메시지를 쓸 수 있고, 또 어느 누구나 메시지를 읽어갈 수 있습니다. 하지만 이러한 환경은 개발 환경이나 혹은 극도로 폐쇄된 환경이 아니라면 적합하지 않습니다. 이번 글은 카프카에 누가 요청을 보내는지, 나아가 그 요청자의 권한에 따라 요청 범위를 적절하게 제한하는 카프카 인증과 인가에 대해 살펴봅니다. 참고로 이번 글은 살펴보는 글이기 때문에 자세한 설정 및 구성 방법 등에 대해서 설명하지 않습니다. 해당 내용은 공식 문서를 참고하시길 바랍니다. 카프카 인증 카프카가 인증을 처리하는 방식은 SSL 방식과 SASL 방식으로 크게 2가지 방식이 있습니다. SSL 방식 : 인증서를 이용한 인증 방식 SASL 방식 : SASL 프로토콜을 이용한 인증 방식 SSL 방식은..
-
[Kafka 101] KSQL (KSqlDB)개발자 라이프/카프카 2020. 6. 21. 21:07
들어가며 카프카는 브로커를 중심으로 다양한 데이터 파이프라인이 구성될 수 있습니다. 그중 이전 글에서 다루었던 카프카 스트림즈는 토픽 간 Sub/Pub을 통해 브로커 내부 파이프라인을 구축할 수 있도록 합니다. 이번 KSQL 또한 카프카 스트림즈처럼 브로커 내부 파이프라인을 구축하는 데에 특화된 Confluent 솔루션입니다. 이번 글에서는 KSQL 이 무엇인지 살펴보고, 구성과 활용에 대해 간단히 소개하겠습니다. KSQL 카프카는 내부 토픽을 Sub하여 분석하거나, Sub 한 토픽을 정제하여 다시 토픽으로 Pub 할 수 있습니다. 그렇다면 이러한 파이프라인을 구축할 때, 어떤 방법을 고려할 수 있을까요? 카프카에서는 다음 3가지 방법을 고려할 수 있습니다. Kafka Client를 이용한 Consume..
-
[Kafka 101] 카프카 스트림즈 (Kafka Streams)개발자 라이프/카프카 2020. 5. 24. 14:44
들어가며 카프카는 브로커를 중심으로 다양한 형태의 메시지 파이프라인을 구성할 수 있습니다. 그리고 메시지 파이프라인은 보편적으로 메시지를 생성하고 브로커로 전송하는 프로듀서에서 시작하여, 브로커에 저장된 메시지를 읽고 처리하는 컨슈머에서 끝이 납니다. 즉, 브로커 외부에서 메시지가 생성되고, 다시 브로커 외부로 읽어집니다. 이러한 메시지 파이프라인 구성은 프로듀서와 컨슈머를 직접 개발하거나, 혹은 카프카 커넥트(Kafka Connect)를 이용하여 Source -> Sink 형태로 구성할 수 있습니다. 그렇다면 카프카 내부에서 메시지 파이프라인을 구성하려면 즉, 내부 토픽을 이용하여 파이프라인을 구성하려면 어떻게 해야 할까요? 이번 글은 카프카 내부에서 메시지 파이프라인을 쉽게 구성할 수 있도록 하는 카..
-
[Kafka 101] 카프카 커넥트 (Kafka Connect)개발자 라이프/카프카 2020. 5. 10. 12:57
들어가며 카프카는 프로듀서와 컨슈머 클라이언트를 통해 메시지 파이프라인을 구성할 수 있습니다. 하지만 파이프라인 구성을 위해 매번 프로듀서와 컨슈머를 개발하는 것은 쉽지 않습니다. 이번 글은 카프카와 외부 시스템 간의 파이프라인 구성을 더욱 쉽고 간편하게 해주는 카프카 커넥트(Kafka Connect)에 대해서 살펴봅니다. Kafka Connect 카프카는 아키텍처 중심에서 다양한 외부 시스템과 메시지 파이프라인을 구성합니다. 그리고 일반적으로 메시지를 송수신하기 위해 외부 시스템에는 프로듀서, 컨슈머가 구현됩니다. 이때, 외부 시스템의 수가 많아지면 어떻게 될까요? 클라이언트는 그 외부 시스템에 맞춰 구현되고 관리되어야 합니다. 즉, 개발 비용이 필요합니다. 카프카 커넥트는 이러한 개발 비용을 없애고,..
-
[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 합니다. 카프카 구성 요소로 예를 들면 브로커가..