IT TIP

Kafka : 소비자 API 대 Streams API

itqueen 2020. 12. 1. 20:21
반응형

Kafka : 소비자 API 대 Streams API


나는 최근에 Kafka를 배우기 시작했고 이러한 질문으로 끝났습니다.

  1. 소비자와 스트림의 차이점은 무엇입니까? 나에게 어떤 도구 / 애플리케이션이 Kafka의 메시지를 소비한다면 Kafka 세계의 소비자입니다.

  2. 이것이 Kafka에서 메시지를 소비하거나 생성하기 때문에 Stream은 어떻게 다른가요? 소비자 API를 사용하여 자체 소비자 애플리케이션을 작성하고 필요에 따라 처리하거나 소비자 애플리케이션에서 Spark로 보낼 수 있기 때문에 왜 필요합니까?

나는 이것에 대해 Google을했지만 이것에 대한 좋은 답변을 얻지 못했습니다. 이 질문이 너무 사소한 경우 죄송합니다.


2018 년 4 월 9 일 업데이트 : 현재 Kafka 용 스트리밍 SQL 엔진 인 KSQL 을 사용 하여 Kafka에서 데이터를 처리 할 수도 있습니다 . KSQL은 Kafka의 Streams API를 기반으로 구축되었으며 "스트림"및 "테이블"에 대한 최고 수준의 지원도 제공됩니다. Java 또는 Scala로 프로그래밍 코드를 작성할 필요가없는 Kafka Streams의 SQL 형제처럼 생각하십시오.

Consumer API와 Streams API의 차이점은 무엇입니까?

Kafka의 Streams API ( https://kafka.apache.org/documentation/streams/ )는 Kafka의 생산자 및 소비자 클라이언트를 기반으로 구축되었습니다. Kafka 소비자 클라이언트보다 훨씬 더 강력하고 표현력이 뛰어납니다. 다음은 Kafka Streams API의 일부 기능입니다.

  • 정확히 1 회 처리 의미 체계 지원 (Kafka 버전 0.11+)
  • 스트리밍 조인 , 집계윈도우를 포함하여 내결함성 상태 저장 (물론 상태 비 저장) 처리를 지원 합니다 . 즉, 애플리케이션의 처리 상태를 즉시 관리 할 수 ​​있습니다.
  • 지지체 일정 시간 처리 뿐만 아니라 기반 처리에서 의 처리 시간섭취 시간
  • 스트림 처리와 데이터베이스가 만나는 스트림과 테이블 모두에 대한 최고 수준의 지원을 제공 합니다. 실제로 대부분의 스트림 처리 애플리케이션에는 각각의 사용 사례를 구현하기 위해 스트림과 테이블이 모두 필요하므로 스트림 처리 기술에 두 가지 추상화 (예 : 테이블에 대한 지원 없음) 중 하나가없는 경우 문제가 발생하거나이 기능을 직접 구현해야합니다. (좋은 성과 있길 바래요...)
  • 대화 형 쿼리 ( '쿼리 가능 상태'라고도 함)를 지원 하여 다른 애플리케이션 및 서비스에 최신 처리 결과를 노출합니다.
  • 더 표현이다와 그 선박 (1) 함수형 프로그래밍 스타일의 DSL 과 같은 작업으로 map, filter, reduce뿐만 아니라 (2) 필수 스타일 프로세서 API 예 : 복합 이벤트 처리 (CEP)을 수행하기위한, (3) 당신도 결합 할 수 있습니다 DSL 및 프로세서 API.

Kafka Streams API에 대한보다 상세하지만 여전히 높은 수준의 소개는 http://docs.confluent.io/current/streams/introduction.html참조 하십시오. 또한 하위 수준 Kafka 소비자와의 차이점을 이해하는 데 도움이됩니다. 고객. 도있다 카프카 스트림 API에 대한 도커 기반 튜토리얼 , 나는에 대해 블로그에 이번 주.

그렇다면 Kafka에서 메시지를 소비하거나 생성하기 때문에 Kafka Streams API는 어떻게 다릅니 까?

예, Kafka Streams API는 데이터를 읽고 Kafka에 데이터를 쓸 수 있습니다.

소비자 API를 사용하여 자체 소비자 애플리케이션을 작성하고 필요에 따라 처리하거나 소비자 애플리케이션에서 Spark로 보낼 수 있기 때문에 왜 필요합니까?

예, 직접 소비자 애플리케이션을 작성할 수 있습니다. 앞서 언급했듯이 Kafka Streams API는 Kafka 소비자 클라이언트 (및 생산자 클라이언트 포함) 자체를 사용하지만 Streams API가 제공하는 모든 고유 기능을 수동으로 구현해야합니다. . "무료"로받을 수있는 모든 것은 위의 목록을 참조하십시오. 따라서 사용자가 더 강력한 Kafka Streams API보다 낮은 수준의 소비자 클라이언트를 선택하는 것은 드문 상황입니다.

참고 URL : https://stackoverflow.com/questions/44014975/kafka-consumer-api-vs-streams-api

반응형