Kafka5 [Kafka] 성능 최적화 3 - Latency 시작하며... 이번에는 4개의 성능 목표 중 첫번째로 Latency에 대해서 어떤 파라미터를 튜닝하는지 알아보겠습니다. 프로듀서와 컨슈머의 option 중 어떤 option이 Throughput에 영향을 주는지 알아보며 어떻게 이 옵션의 파라미터가 영향을 주며, 어떻게 설정해야하는지를 보도록 하겠습니다. Latency : 지연 시간으로 불리우며, 카프카가 얼마나 빠르게 하나의 메시지를 빠르게 전달하는지의 메트릭이다. 1. Broker를 통한 Latency 최적화 🚀 Partition 개수 제한 Latency을 줄이기 위해서는 파티션의 개수를 줄이는 방법이 존재합니다. 파티션의 수가 많으면 많을 수록 메시지의 Latency를 유발하게 되는데, 파티션에 복사를 위한 시간만큼 Latency가 발생되기 때문입니.. 2022. 10. 3. [Kafka] 성능 최적화 2 - Throughput 시작하며... 이번에는 4개의 성능 목표 중 첫번째로 Throughput에 대해서 어떤 파라미터를 튜닝하는지 알아보겠습니다. 프로듀서와 컨슈머의 option 중 어떤 option이 Throughput에 영향을 주는지 알아보며 어떻게 이 옵션의 파라미터가 영향을 주며, 어떻게 설정해야하는지를 보도록 하겠습니다. Throughput : 처리량으로 불리우며, 카프카가 얼마나 많은 데이터를 처리할 수 있는지에 대한 메트릭이다. 1. Producer를 통한 Throughput 최대화 Partition Throughput를 최적화하는 방법은 Partition 수를 증가시키는 방법이 대표적입니다. Partition의 수를 증가시키면, 분산효과를 가져오며 분산처리를 하면 할 수 록 더 많은 데이터를 처리할 수 있어 T.. 2022. 9. 21. [Kafka] 성능 최적화 1 - 파라미터 정리 성능 목표 4가지 성능 목표는 4가지로 정리할 수 있습니다. Throughput : 처리량으로 불리우며, 카프카가 얼마나 많은 데이터를 처리할 수 있는지에 대한 메트릭이다. Latency : 지연 시간으로 불리우며, 카프카가 얼마나 빠르게 하나의 메시지를 빠르게 전달하는지의 메트릭이다. Durability : 내구성, 영속성있는 등으로 불리우며, 카프카가 얼마나 메시지의 유실을 최소화하는지의 메트릭이다. Availability : 가용성으로 불리우며, 카프카가 얼마나 서버의 다운에 대해서 최소화하는지의 메트릭이다. 이제 각 성능 목표는 4가지로 정리했습니다. 모든 성능 목표를 최적화 할 수 있다면 매우 좋은 방법이겠지만 그렇지 못합니다. 목표별 trade-off 관계가 되는 것이 있는데, Throughp.. 2022. 9. 18. [Kafka] 스트림즈, 커넥트, 미러메이커2 출처 : 아파치 카프카 애플리케이션 프로그래밍 with 자바 책을 읽고 정리하였습니다. 카프카 스트림즈 카프카 스트림즈는 토픽에 적재된 데이터를 실시간으로 변환하여 다른 토픽에 적재하는 라이브러리입니다. 보통 빅데이터 처리에 필수적이라고 판단되었던 분산 시스템이나 스케줄링 프로그램들은 스트림즈를 운영하는 데에는 불필요합니다. 자바 라이브러리로 구현하는 스트림즈 애플리케이션은 JVM 위에서 하나의 프로세스로 실행되기 때문입니다. 프로듀서 -> 카프카 클러스터 -> 컨슈머 ↕ 스트림즈 애플리케이션 cf) 프로듀서와 컨슈머를 조합해서 사용하지 않고 스트림즈를 사용해야 하는 이유 스트림 데이터 처리에 있어 필요한 다양한 기능을 스트림즈DSL로 제공하며 필요하다면 프로세서 API를 사용하여 기능을 확장할 수 있기.. 2022. 9. 15. [Kafka] 기본 개념 - 브로커, 프로듀서, 컨슈머, 토픽 출처 : 아파치 카프카 애플리케이션 프로그래밍 with 자바 책을 읽고 정리하였습니다. 카프카 브로커, 클러스터, 주키퍼 카프카 브로커는 카프카 클라이언트와 데이터를 주고받기 위해 사용하는 주체이자, 데이터를 분산 저장하여 장애가 발생하더라도 안전하게 사용할 수 있도록 도와주는 애플리케이션입니다. 하나의 서버에는 한 개의 카프카 브로커 프로세스가 실행됩니다. 보통은 데이터를 안전하게 보관하고 처리하기 위해 3대 이상의 브로커 서버를 1개의 클러스터로 묶어서 운영합니다. 카프카 클러스터로 묶인 브로커들은 프로듀서가 보낸 데이터를 안전하게 분산 저장하고 복제하는 역할을 수행합니다. 데이터 저장, 전송 프로듀서로부터 데이터를 전달받으면 카프카 브로커는 프로듀서가 요청한 토픽의 파티션에 데이터를 저장하고 컨슈머.. 2022. 8. 30. 이전 1 다음