가장 적합한 메시징 서비스 식별

메시징 서비스 선택 시 고려할 사항에 대해 알아본 다음 결정 매트릭스 테이블을 사용하여 비즈니스 요구사항에 따라 OCI 서비스의 다양한 옵션 및 제한 사항을 검토합니다.

메시징 서비스 선택 시 고려 사항

결정을 내리려면 다음 평가 요소를 고려하십시오.

안무 또는 오케스트레이션

Choreography와 Orchestration은 서로 다른 분리된 구성 요소가 함께 작동하는 방식에 대한 두 가지 아키텍처 접근 방식입니다. 안무는 각 구성 요소가 독립적으로 수행하는 원리를 채택하지만 다음 작업을 수행 할 때의 큐를 듣고 감시합니다. 메시지 브로커는 큐를 다음 구성 요소로 전송합니다. 구성요소는 매우 자율적이며 쉽게 확장할 수 있습니다. 단점은 각 구성 요소가 전체 솔루션에서 해당 구성 요소의 역할에 대한 이해를 높이고 복잡성을 높여야 한다는 것입니다. 메시지 브로커는 중요한 요소이며 단순성으로 작업 로드를 줄이고 처리량을 높일 수 있습니다.

오케스트레이션은 오케스트라처럼 조립된 구성요소의 아이디어를 가리킵니다. 각 구성요소는 해당 작업만 알고 있어야 하며 컨덕터 또는 조정자가 작업을 수행하라는 메시지를 표시할 때까지 기다려야 합니다. 따라서 지휘자는 모든 구성 요소를 지시하는 지능을 이해하고 있어야 합니다. 컨덕터 역할은 핵심이며 탄력성과 확장 능력은 전체 솔루션의 확장성과 복원성에 직접적인 영향을 줍니다.

일부 오케스트레이션 제품에는 브로커 포함과 같은 안무가 있거나 브로커 커뮤니케이션의 효과를 얻기 위해 구성 요소를 사용하는 서비스를 만드는 기능이 포함됩니다.

메시지 또는 이벤트 대 지급 대량 구매

솔루션의 비용 영향에 따라 다양한 지불 모델을 고려합니다. 대량 구매에서 사용되지 않은 메시지 볼륨이 있을 경우 메시지당 지급을 선택할 수 있습니다. 서비스에 대한 최소 설치 공간 비용이 더 적은 용도로 분산되어야 하므로 메시지 또는 이벤트당 지불 비용이 더 많이 들 수 있다는 사실을 고려하십시오.

단일 또는 다중 메시지 소비자

큐와 주제의 차이점은 메시지를 큐와 함께 한 번만 사용할 수 있다는 것입니다. 한 주제에 여러 소비자가 있을 수 있습니다. 대기열 및 토픽에는 소비자 유형의 인스턴스가 여러 개 있을 수 있습니다. 단일 주제 또는 대기열에 연결된 동일한 소비자 유형의 여러 인스턴스는 종종 사용 가능한 다음 소비자가 사용 가능한 다음 메시지를 수신하는 인종 조건으로 설명됩니다.

읽은 후 메시지 유지

일부 메시지 브로커는 리소스를 관리하기 위해 읽은 메시지(또는 모든 소비자가 메시지를 읽은 후)를 삭제합니다. Apache Kafka는 소비자가 메시지를 얼마나 오래 통과했는지 추적하지만 읽은 후 삭제하지는 않습니다. 그러면 문제가 있는 경우 메시지를 재생할 수 있습니다. 따라서 Kafka는 메시지 브로커뿐만 아니라 데이터 저장소 역할을 하며 메시지 데이터 저장소에 대한 데이터 분석 생성을 지원합니다.

보장된 주문

메시지가 저장된 순서가 아닌 순서대로 전달되도록 보장하면 복잡성이 발생하고 성능에 영향을 미칩니다. 대기 시간 문제는 소비자가 소비자가 소비되기 전에 올바른 순서로 삽입해야 하는 지연된 메시지가 없도록 하기 위해 대기 시간을 기다릴 수 있으므로 브로커를 통해 작업할 때 도입할 수 있습니다.

예를 들어, 메시지 순서는 취소되는 주문을 나타내는 이벤트에 필수적입니다. 주문 생성에 대한 메시지로 인해 메시지가 순서를 따르지 않을 경우 애플리케이션 이슈가 발생할 수 있습니다.

주문 문제와 오프셋 브로커 제약 조건을 완화하는 데 도움이 되는 애플리케이션 레벨 패턴과 전략이 있습니다.

비동기 작업

브로커 메커니즘을 사용하면 메시지 제공자가 소비자에 대해 알 필요가 없으며 제공자의 속도가 느려지지 않는다는 이점이 있습니다. {\f2732 Broker}는 소비자가 누구인지{\f2732 , }사용 가능한지 여부{\f2732 , }소비자에 문제가 있는 경우{\f2732 (}예{\f2732 : }성능{\f2732 ) }전달을 관리합니다{\f2732 .} 중계자를 사용하면 비동기 통신이 가능하며 제공자와 소비자가 동기화되지 않아도 됩니다.

최대 메시지 속도, 메시지 보존 기간 및 최대 보존 볼륨

이러한 요인은 모두 서버리스 솔루션 제공 비용에 영향을 미치는 요소이며, 종종 하드 한계를 설정해야 합니다. 소프트웨어가 기대치를 확장하면서 항상 일관된 성능을 제공하는 것은 아닙니다. 기대치를 제어하는 제한을 설정하고 예측 가능한 동작을 제공할 수 있습니다. 이러한 한계를 이해하여 구축 중인 솔루션에 영향을 미칠 수 있는지 여부를 결정해야 합니다.

예를 들어, 주가 변경 시 주가 거래 시스템이 메시지를 수신합니다. 각 메시지는 작지만 업데이트 빈도가 높아 메시지 볼륨이 높습니다. 처리량이 적지만 메시지 크기가 큰 브로커는 이 요구사항을 지원할 수 없습니다.

산업 표준 입력 지원 및 산업 표준 출력 지원

산업 표준 형식 및 프로토콜을 사용하여 메시지를 보내고 받으면 다양한 배치 및 구현 제공자에서 메시징 방식을 재구성하고 사용할 수 있게 됩니다. 공통 라이브러리를 활용하여 낮은 수준의 통신 메커니즘을 해결하고 공급업체의 관계를 줄일 수 있습니다.

타사 어댑터 지원

메시지 제공자와 소비자를 개발하기 위해 타사 어댑터를 통한 지원은 개발 옵션을 늘리므로 유용할 수 있습니다.

구획당 개별 배포

개별 메시징 채널 또는 플로우를 특정 구획에 배포하고 솔루션의 서비스가 공통 제어 표면을 통해 세분화된 수집 보안 제어를 갖도록 할 수 있습니다. 이 접근 방식은 모든 요소를 구획 레벨에서 제어할 수 있다고 가정합니다. 채널당 구획 레벨 제어를 수용할 수 없는 솔루션은 대안을 제공할 수 있습니다. 대체 방법을 사용하려면 추가 구성 고려 사항이 필요할 수 있습니다.

OCI IAM 인증 사용

Oracle Cloud Infrastructure Identity and Access Management(OCI IAM)는 보안을 다른 공급자와 통합할 수 있는 경우에 강력한 엔터프라이즈급 보안을 제공합니다. 단일 IAM 제공자(페더레이션 포함 또는 제외)를 통해 작업할 경우 데이터 플로우 접근에 대한 보안 제어를 더욱 쉽게 관리할 수 있습니다.

이동 중 및 유휴 상태 데이터 암호화

서비스를 통해 전달되는 데이터가 민감한 경우 전송 중에 그리고 전달 시까지 중개자가 보유하는 동안 데이터를 보호해야 합니다. 메시지가 손실되지 않도록 하려면 중계자의 암호화 메커니즘에 의해 민감한 메시지를 암호화해야 합니다.

메시지 변환

채택된 아키텍처 원칙에 따라 브로커는 메시지 형식을 변환할 수 있어야 합니다. 메시지 제공업체 또는 소비자는 일반적인 데이터 의미를 이해하거나 제공업체 또는 소비자가 데이터 형식을 어떻게 지정하는지 알 필요가 없습니다. 이 고려 사항은 사용 중인 프로토콜의 변경 사항으로도 확장될 수 있습니다. 예를 들어, REST에서 STOMP로 변환합니다.

감사 추적

분산 응용 프로그램의 문제를 해결하기 위해 감사 추적을 통해 메시지가 전송되고 수신된 위치를 추적할 수 있습니다. 감사 추적은 법률 요구 사항을 준수해야 하는 경우에 유용할 수 있습니다. 따라서 서비스가 이 요구 사항을 지원하는 방법을 알아야 할 수도 있습니다.

의사 결정 매트릭스 검토

다음 결정 매트릭스를 사용하여 OCI 서비스의 사용 가능한 선택과 특정 서비스 선택을 위한 고려 사항 또는 평가 요소에 대해 알아봅니다.

서비스/요소 대기열 스트리밍 통지 Oracle Integration (Gen2, Gen3) Autonomous Database(TEQ 및 AQ)
Choreography와 Orchestration 비교

안무

안무 안무 지리 및 통합관리(통합 구성에 따라 다름) 지리 및 통합관리(통합 구성에 따라 다름)
대량 구매와 비교하여 메시지 또는 이벤트당 지급 Per API call + multiplier for messages > 64 KB Per GB data transfer + Storage 통신 채널에 따라 다릅니다. 발송된 수량으로 가격이 책정되었습니다. 시간당 5,000건의 통합 호출로 구성된 블록 단위의 가격 아니요, 데이터베이스 가격
메시지에 대한 단일 또는 다중 소비자

단일 소비자입니다. (경로 조건은 허용되지만 메시지당 소비자는 하나만 허용됩니다.)

단일 및 다중 단일 및 다중 단일 및 다중(통합 정의에 따라 다름) 단일 및 다중
읽은 후 메시지 보존 아닙니다 아닙니다 예(통합 정의에 따라 다름)
보장된 주문 최선 조건 예, 파티션 내에서 아닙니다 예(통합 정의에 따라 다름) 부분(우선순위에 대한 규칙을 설정할 수 있으며 소비 순서를 지정할 수 있음)
비동기 작업 예(통합 정의에 따라 다름)
입력에 대해 지원되는 산업 표준 REST API, 스톰 Kafka 접속 OCI 이벤트, 알람의 클라우드 이벤트 다양한 어댑터

JMS 및 SQL

REST API를 제공하여 커스터마이징 ORDS 구현에 추가적인 노출을 제공합니다.

타사 어댑터 지원

오픈 소스 STOMP 구현

모든 Kafka 호환 툴, 라이브러리 또는 SDK 아닙니다 광범위한 업계 어댑터. REST 인터페이스 또는 표준 JMS 클라이언트에서 생성할 수 있습니다.

표준 JMS 표준 라이브러리 사용

SQL이 널리 지원됩니다.

출력에 대해 지원되는 산업 표준 스톰, REST API Kafka 접속 이메일, Slack, PagerDuty, HTTP/S 다양한 어댑터 JMS 및 SQL
최대 메시지 속도 10MBPS

파티션당 초당 1MB

초당 최대 250개의 GET 요청

HTTP/S의 경우 분당 60개

전자메일의 경우 분당 10개

통지 항목의 경우 분당 60개

지정된 사항 없음 데이터베이스 크기 조정에 따라 다름
메시지 보존 기간 7일(구성된 경우 짧음) 7일 전체 배송 재시도까지 정의된 항목 없음 구성 가능
최대 보존 볼륨 대기열당 2GB(테넌시당 20GB) Retention은 7일 동안 Partition당 초당 최대 쓰기 속도인 1MB에 따라 결정됩니다. 메시지 비율 및 전달 재시도 기간의 기능입니다. 해당 없음 데이터베이스 구성에 따라 다름
OCI SDK 또는 CLI에서 메시지 전송 지원 아닙니다 아닙니다
구획당 개별 배포

번호 Oracle Integration 인스턴스는 개별 통합이 아닌 구획 레벨에서 구분됩니다.

번호 데이터베이스 인스턴스는 개별 대기열이 아닌 구획에 정렬됩니다.

RBAC(IAM 인증) 사용
이동 중 및 유휴 상태의 데이터가 암호화됩니다. 데이터베이스 구성에 따라 다름
메시지 변환 아닙니다 아닙니다

제한됨.

전자 메일 등에 대한 편리한 형식 지정 끝점이 Oracle Functions를 사용하는 경우 Functions가 메시지를 변환할 수 있습니다.

예(내장 SQL 프로시저)
감사 추적 예(로깅 사용) 예(로깅 사용) 예(로깅 사용) 예(로깅과 함께 Oracle Integration 포함)

다음 정보를 사용하여 매트릭스를 해석할 수 있습니다.

  • 지불 모델: 메시지별 또는 용량 대량 구매를 나타냅니다.
  • 경로 조건: 대기열에 여러 소비자가 있는 경우 다음 메시지는 먼저 다른 메시지를 준비할 소비자가 처리하므로 소비자는 '경로 조건'으로 설명됩니다.
  • REST 기반 엔드포인트: 일부 서비스는 REST 기반 엔드포인트를 제공합니다. REST 페이로드가 Open API 사양을 사용하여 모델링된 경우 페이로드별 SDK를 제공하지 않을 수 있습니다. 이 경우 API Gateway 서비스를 사용하여 SDK를 생성할 수 있습니다. 자세한 내용은 API 리소스에 대한 SDK 생성에 대한 OCI 문서를 참조하십시오.

이 매트릭스는 OCI 서비스 외에도 다음 기술을 나타냅니다.

  • STOMP: Simple (or Streaming) Text Orientated Messaging Protocol. STOMP 클라이언트가 모든 STOMP 메시지 브로커와 통신하여 여러 언어, 플랫폼 및 브로커 간에 쉽고 광범위한 메시징 상호 운용성을 제공할 수 있도록 상호 운용 가능한 회선 형식을 제공합니다.
  • STOMP 구현: 알려진 STOMP 호환 메시지 서버를 가리킵니다.
  • Kafka Connect: 이 툴을 사용하면 Apache Kafka와 다른 시스템 간에 안정적으로 데이터를 스트리밍하고 확장할 수 있습니다. 큰 데이터 수집을 Kafka 안팎으로 이동하는 커넥터를 빠르게 정의할 수 있습니다.

탐색 섹션에서 기술에 대한 추가 정보를 읽을 수 있습니다.