Kafka
-
[카프카(Kafka)] 주키퍼의 역활 정리Kafka 2019. 3. 11. 11:53
주키퍼는 카프카 클러스터를 관리하고 조정하는 코디네이터 역활을 한다.(카프카 클러스터는 카프카 브로커, 프로듀서 컨슈머 포함한다. ) 새로운 브로커 추가나 기존 브로커 감시하고 브로커 목록이 추가나 삭제에 의해서 변화될 경우,주키퍼는 이런 상태를 프로듀서나 컨슈머에게 통보하여 활성화된 브로커과 동작을 원활하게 한다. (리벨런싱)또한 특정 토픽의 파티션에 대해서 리더와 팔로워를 기록하고, 프로듀서나 컨슈머에게 정보를 제공한다. 카프카는 주키퍼 없이 동작하지 못한다. 주키퍼의 역활에 대해서 좀더 알아보자. 주키퍼 역활컨트롤러 선정컨트롤러는 파티션 관리를 책임지는 브로커 중 하나이다. 파티션 관리는 리더 선정, 토픽 생성, 파티션 생성, 복제본 관리 등을 포함한다. 하나의 브로커가 장애가 발생하면 카프카 컨트..
-
[카프카(Kafka)] 성능 관련 고찰Kafka 2019. 3. 11. 10:16
사내 시스템의 임시버퍼 용도로 Redis를 도입하여 성능 테스트를 진행하던 중, 버퍼 용량 이슈로 인하여 Redis와 Kafka를 비교하게 되었다. 우선 결론적으로는 Redis(List)와 Kafka 사용 시 성능 차이는 거의 없었고, Kafka가 보관 용량에 대해선 유리하였다. 이번 주제에서는 Kafka 성능에 대한 정리이므로 Redis & Kafka 비교는 나중에 진행하기로 한다. 궁금증Kafka는 대용량 메시지 처리 성능이 좋다고 조금만 리서치 해보면 알 수 있다. 그러면.... 처리량이 얼마나 될까? HDD와 SSD는 차이가 발생할까? Producer와 Consumer 수에 따라서 성능 차이가 날까? 여러 Consumer Group이 같은 토픽을 조회해도 성능 차이가 없다고 하던데 과연 그럴까?이..
-
[카프카(Kafka) 어플리케이션 제작 ] #2. 컨슈머Kafka 2019. 3. 7. 17:50
카프카(Kafka)의 이해카프카(Kafka) 설치 및 클러스터 구성[카프카(Kafka) 어플리케이션 제작 ] #1. 프로듀서 이전 글에서는 프로듀서 내부 동작 확인 및 어플리케이션을 제작하였다. 이번에는 컨슈머 어플리케이션을 제작해본다. 컨슈머 카프카 컨슈머 내부 동작 및 컨슈머 어플리케이션에서 메시지 소비하는 과정을 알아보자. 컨슈머 내부 동작컨슈머의 전체적인 내부 동작을 이해하면 컨슈머 어플리케이션을 디버깅할 때 도움이 많이 되며, 올바른 결정을 하도록 도와준다. 카프카 컨슈머의 역활 토픽 구독컨슈머 동작의 시작은 토픽의 구독임 오프셋 위치카프카는 다른 큐와는 다르게 메시지 오프셋을 저장 안함오프셋은 각자의 컨슈머들이 유지해야함(컨슈머 API를 사용) 재연/되감기/메시지 스킵상황에 따라 커스텀하게 오..
-
[카프카(Kafka) 어플리케이션 제작 ] #1. 프로듀서Kafka 2019. 3. 6. 15:26
카프카(Kafka)의 이해카프카(Kafka) 설치 및 클러스터 구성 위의 링크 글에서는 Kafka 개요 및 설치, 명령어를 이용하여 토픽 생성, 토픽 메시지 Publish, Subscribe에 대해서 설명하였다. 이번에는 Kafka 라이브러리를 이용하여 어플리케이션을 만들어보자.본인은 Intellij IDE 환경에서 SpringBoot 2.1 플래폼을 기반으로 Maven 빌드를 사용한다. 프로듀서나 컨슈머를 사용하기 위해서는 kafka-clients를 이용하므로 pom.xml에 종속성을 추가한다. org.apache.kafka kafka-clients 2.1.0 프로듀서카프카 프로듀서 내부 동작 및 프로듀서 어플리케이션에서 카프카 큐로 메시지가 전달되는 과정을 알아보자.프로듀서 내부 동작메시지 게시(Pu..