기본 콘텐츠로 건너뛰기

5월, 2016의 게시물 표시

[번역] 카프카 컨슈머 소개: 새 아파치 카프카 0.9 컨슈머 클라이언트 시작하기

카프카 컨슈머 클라이언트 0.9.0 에 대한 글이 있어서 학습차 요약정리 해두기로 했음. 발번역이고 의역과 생략된 내용 있으니,,, ((((( ' ')

원문: http://www.confluent.io/blog/tutorial-getting-started-with-the-new-apache-kafka-0.9-consumer-client

원작자: Jason Gustafson


 애초에 카프카는 스칼라로 만들어진 프로듀서와 컨슈머 클라이언트를 제공했다. 시간이 지나면서 이 API에 많은 제약이 있음을 깨닫게 되었다. 예를 들어, 컨슈머 그룹을 지원하고 Failover 처리하는 ‘high-level’ 컨슈머 API가 있지만 더 복잡한 시나리오를 지원하지 못했다. 그리고 풀 컨트롤을 제공하는 “simple” 컨슈머 클라이언트가 있지만 사용자가 Failover와 에러 처리를 직접해야 했다. 그래서 다양한 사례를 처리하기 위해 클라이언트를 다시 디자인하기 시작했다.

 첫 단계로 0.8.1에 Producer API를 다시 작성하고, 두 번째 단계로 새(new) 컨슈머 API 소개하는 0.9 배포가 최근에 완료되었다. 카프카에서 제공하는 새(new) 그룹 코디네이션 프로토콜 기반으로 새 컨슈머를 개발하면 아래와 같은 이점을 가질 수 있다.

깔끔하게 통합된 API: 새 컨슈머는 예전의 “심플” 하고 “고수준" 컨슈머 클라이언트의 두가지 능력을 결함하고,  자신만의 소비 전략을 만들기 위해 그룹 코디네이션과  저수준의 접근성 두가지를 결합한다.의존성 감소: 새 컨슈머는 순수 자바로 작성되었다. 스칼라 런타임이나 주키퍼에 의존성이 없어서 프로젝트에 포함 시킬 수 있는 더 가벼운 라이브러리를 만들 수 있다.향상된 보안: 카프카 0.9에 구현된 보안확장은 새 컨슈머에만 지원된다.또한, 새 컨슈머는 컨슈머 프로세스 그룹의 Fault-Tolerant를 관리하기 위해 프로토콜 세트(set)를 제공한다. 이전에 이 기능은 주키퍼와 통신하는 무거운 구현었다. 로직이 …