4.2. 브로커 유형
클러스터 관리자는 클러스터의 기본 브로커 구현을 설정할 수 있습니다. 브로커를 생성할 때 Broker
오브젝트에 설정된 구성을 제공하지 않는 한 기본 브로커 구현이 사용됩니다.
4.2.1. 개발 목적을 위한 기본 브로커 구현
Knative는 기본 채널 기반 브로커 구현을 제공합니다. 이 채널 기반 브로커는 개발 및 테스트 목적으로 사용할 수 있지만 프로덕션 환경에 적합한 이벤트 전달 보장은 제공하지 않습니다. 기본 브로커는 기본적으로 InMemoryChannel
채널 구현에서 지원합니다.
Apache Kafka를 사용하여 네트워크 홉을 줄이려면 Apache Kafka에 Knative 브로커 구현을 사용합니다. KafkaChannel
채널 구현에서 지원하도록 채널 기반 브로커를 구성하지 마십시오.
4.2.2. Apache Kafka에 대한 프로덕션 지원 Knative 브로커 구현
프로덕션 지원 Knative Eventing 배포의 경우 Red Hat은 Apache Kafka에 Knative 브로커 구현을 사용하는 것이 좋습니다. 브로커는 Knative 브로커의 Apache Kafka 기본 구현으로, CloudEvents를 Kafka 인스턴스로 직접 보냅니다.
Knative 브로커에는 이벤트 저장 및 라우팅을 위한 Kafka와 기본 통합이 있습니다. 이를 통해 다른 브로커 유형보다 브로커 및 트리거 모델에 대한 Kafka와 보다 효과적으로 통합할 수 있으며 네트워크 홉이 줄어듭니다. Knative 브로커 구현의 기타 이점은 다음과 같습니다.
- at-least-once 전달 보장
- CloudEvents 파티션 확장에 따라 이벤트를 정렬된 제공
- 컨트롤 플레인 고가용성
- 수평으로 확장 가능한 데이터 플레인
Apache Kafka의 Knative 브로커 구현은 바이너리 콘텐츠 모드를 사용하여 들어오는 CloudEvents를 Kafka 레코드로 저장합니다. 즉, 모든 CloudEvent 속성 및 확장이 Kafka 레코드의 헤더로 매핑되지만 CloudEvent의 data
사양은 Kafka 레코드의 값에 해당합니다.