programing

스프링카프카 vs.Spring-Cloud-Stream(카프카)

telecom 2023. 8. 18. 20:52
반응형

스프링카프카 vs.Spring-Cloud-Stream(카프카)

마이크로서비스 아키텍처에서 카프카를 메시징 시스템으로 사용하는 경우 스프링-카프카와 스프링-클라우드-스트림+스프링-클라우드-스타터-스트림-카프카의 이점은 무엇입니까?

스프링 클라우드 스트림 프레임워크는 더 많은 메시징 시스템을 지원하므로 모듈식 설계를 제공합니다.하지만 기능성은 어떨까요?spring-kafka와 spring-cloud-stream + spring-cloud-starter-stream-kafka의 기능 사이에 차이가 있습니까?어떤 API가 더 잘 설계되었습니까?

당신의 의견에 대해 읽기를 기대하고 있습니다.

Kafka 바인더가 포함된 Spring Cloud Stream은 Spring-kafka에 의존합니다.따라서 전자는 나중에 지원되는 모든 기능을 갖추고 있지만 전자는 더 비중이 클 것입니다.다음은 선택하는 데 도움이 되는 몇 가지 사항입니다.

  1. 나중에 카프카를 다른 메시지 미들웨어로 변경할 수 있다면 Spring Cloud 스트림은 카프카의 구현 세부 정보를 숨기기 때문에 선택해야 합니다.
  2. 다른 메시지 중간을 카프카와 통합하려면 Spring Cloud 스트림을 선택해야 합니다. Spring Cloud의 판매 포인트는 이러한 통합을 쉽게 하는 것이기 때문입니다.
  3. 단순함을 즐기고 성능 오버헤드를 수용하지 않으려면 spring-kafka를 선택합니다.
  4. AWS Kensis, Azure EventHub와 같은 퍼블릭 클라우드 서비스로 마이그레이션하려는 경우 스프링 클라우드 제품군의 일부인 스프링 클라우드 스트림을 사용하십시오.

하나의 채널이 입력에 사용되는 시스템을 생성할 때 Spring Cloud Stream을 사용하여 일부 처리를 수행하고 하나의 출력 채널로 전송합니다.즉, RESTful API 호출을 대체하는 것이 RPC 시스템에 더 가깝습니다.

이벤트 소싱 시스템을 수행할 계획이라면 동일한 스트림을 게시하고 구독할 수 있는 Spring-Kafka를 사용하십시오.Spring Cloud Stream에서는 다음을 허용하지 않기 때문에 쉽게 수행할 수 없는 작업입니다.

public interface EventStream {
    String STREAM = "event_stream";

    @Output(EventStream.STREAM)
    MessageChannel publisher();

    @Input(EventStream.STREAM)
    SubscribableChannel stream();
}

Spring Cloud Stream이 방지하는 몇 가지 이점은 다음과 같습니다.

  • 직렬화 및 역직렬화 설정

언급URL : https://stackoverflow.com/questions/47312542/spring-kafka-vs-spring-cloud-stream-kafka

반응형