Kafka/Broker 5

Topic Naming Convention

목차 [INTRO] 카프카에서의 화두 중 하나는 카프카 토픽의 이름을 어떻게 짓는것이냐이다. 보통 많은 회사들이 기존의 토픽명의 관습에 따라 많이 짓는다고 한다. 아래와 같은 네이밍 규칙이 권장된다. .. -- ... 그리고 chris riccomini는 아래와 같은 네이밍 규칙을 사용하기도 했다고 한다. .. [카프카에서 유효한 토픽명] 카프카에서는 '_', '-', '.' 이며 아래 정규식이 카프카에서 사용할 수 있는 토픽명이다. 하지만 '_','-' 등을 혼용해서 사용할 경우 충돌이 날 수 있기 때문에 혼용하지 않도록 해야한다. legalChars = "[a-zA-Z0-9\\._\\-]" 또한 토픽명은 대소문자를 구분한다. [카프카에서 토픽명을 정할 때 몇가지 지침들] 토픽명의 포맷을 정해라 가장 ..

Kafka/Broker 2023.05.29

Kafka TCP Connection에 대한 정리

목차 [INTRO] 기본적으로 Kafka에서는 active_connection_count라는 메트릭지표로 현재 사용 중인 Connection 수에 대한 지표를 제공한다. 하지만 실제 클라이언트 인스턴스 수 보다 이 값이 높은 경우가 있다고 한다. TCP Connection 수에 대한 정리. librdkafka에 Connection에 대한 내용이 정리되어 있다. librdkafka/INTRODUCTION.md at master · confluentinc/librdkafka · GitHub GitHub - confluentinc/librdkafka: The Apache Kafka C/C++ library The Apache Kafka C/C++ library. Contribute to confluentinc..

Kafka/Broker 2023.05.29

Kafka Cluster의 성능과 고려요소들

목차 [개요] Produce & Consume의 Request가 어떻게 처리되는지 알아야 한다. 비효율적인 Request가 Broker 성능에 어떤 영향을 줄지 가늠해보아야 한다. Broker의 내부 동작을 알고 있어야 한다. Controller 선출 방법 Broker 장애감지 방법 Controller 장애 후 복구 과정에서 파티션 수가 중요한 이유를 알아야 한다 [Kafka Cluster에 영향을 주는 요소들] Client 설정들 주어진 처리량에 대해 최적화 되지 않은 클라이언트는 필요이상의 request를 생성한다. Kafka는 기본적으로 커넥션을 계속 사용하는 것을 고려해 놓았기 때문에 하나의 요청에 많은 데이터가 오는 방식이 더 적합하다. batch.size, linger.ms의 값을 적절히 설정..

Kafka/Broker 2023.04.23

Broker 내부 구조

Socker Receive Buffer: 네트워크 스레드로 가기전 머무는 버퍼. OS수준에서 제공 Network Thread: 네트워크 관련 처리를 하는 스레드 Request Queue: 네트워크 스레드의 요청이 저장되며 기본적으로 500개의 메시지가 저장된다 I/O Thread: 실제 메시지 처리 스레드. 실제 디스크에 쓰는것이 아니고 Page Cache에 쓴다. Purgatory Area: Page Cache에 쓴 후 잠시 대기하는 곳. 복제가 될 때 까지 대기한다. Response Queue: 처리가 된 메시지들이 머무는 곳. 네트워크 스레드를 거져 Socker Send Buffer로 결과값을 돌려주게 된다. 성능개선 포인트 Socker Buffer Size: 배치 사이즈를 고려하여 튜닝 Threa..

Kafka/Broker 2023.04.16

Data Mount 경로가 여러 개 일때 용량많은 파티션 이동 시키기

고승범님 자료에 매우 잘나와있어 참조 https://www.popit.kr/kafka-%EC%9A%B4%EC%98%81%EC%9E%90%EA%B0%80-%EB%A7%90%ED%95%98%EB%8A%94-tip/ Kafka 운영자가 말하는 TIP | Popit kafka에서는 각 broker의 리소스를 최대한 활용하기 위해 각 토픽들을 균등하게 broker들에게 분산하도록 설계되어 있습니다. 그래서 각 파티션들은 broker들에게 비교적 균등하게 분산되어 있습니다. www.popit.kr

Kafka/Broker 2022.11.02