kafka stream 예제
Kafka Streams가 스트리밍 애플리케이션을 간소화하는 다음 주요 방법은 테이블과 스트림의 개념을 완전히 통합한다는 것입니다. 우리는 “내부 데이터베이스를 선회”의 방법으로 전에이 아이디어에 대해 이야기했습니다. 이 구는 결과 시스템이 응용 프로그램과 해당 데이터 간의 관계를 다시 캐스팅하는 방법과 데이터 변경에 대한 반응 의 맛을 캡처합니다. 이를 이해하기 위해 “table”과 “stream”의 의미와 이러한 항목을 결합하면 비동기 앱에 대한 일반적인 패턴의 전체 호스트가 단순화되는 이유를 설명합니다. 이 생태계는 스트림 처리 생태계만큼이나 혼란스럽습니다! 이전 사용 사례에 직접 연결하 고 Kafka의 특성으로 인해 특히 주제가 복제 된 커밋 로그에 지속되어 추가 사용 사례 또는 구현 된 추가 인프라 구성 요소를 제안하고 싶습니다. 카프카 스트림. 상태 비수기 변환처리에 대한 상태가 필요하지 않습니다. 예를 들어 스트림 프로세서의 특정 문자열로 시작하는 모든 키에 대한 스트림을 필터링한다고 가정해 보겠습니다. 이 경우 Kafka 스트림은 스트림의 이전 이벤트를 알 필요가 없습니다. 단순히 메시지에 대한 각 필터링 작업을 수행하고 계속 진행됩니다. 반대로 스트림에서 특정 값을 합산한다고 가정해 보겠습니다.
이 경우 합계 결과의 실행 집계를 유지하려면 스트림의 이전 메시지에서 이미 처리된 내용을 알기 위해 “상태”가 필요합니다. Confluent 스트림 예제는 여기에 있습니다. 이 예제에서는 Java 8 람다 식(코드를 크게 단순화함)의 사용, Avro 데이터를 읽음/쓰기하는 방법 및 포함된 Kafka 클러스터를 사용하여 종단 간 통합 테스트를 구현하는 방법을 보여 줍니다. Kafka의 핵심 추상화를 스트림 처리를 위한 기본 요소로 설계했기 때문에 스트림 처리 프레임워크에서 얻을 수 있는 것을 제공하는 것을 제공할 수 있기를 원했지만 추가 운영 복잡성은 거의 없습니다. 일반 카프카 생산자 및 소비자 API를 넘어섭습니다. 원래 의 예 아키텍처는 부분적으로만 함께 작동하는 독립적 인 조각의 집합이었지 만, 우리는 당신이 카프카, 카프카 커넥트, 카프카 스트림 모두 함께 작동하도록 만들어진 것 같은 느낌이 느낄 수 있기를 바랍니다.