Oracle Cloud Infrastructure(OCI) Streaming은 실시간으로 사용 및 처리할 수 있는 지속적으로 대용량 데이터 스트림을 수집하기 위한 확장 가능하고 내구성이 뛰어난 완전 관리형 메시징 솔루션을 제공합니다. Streaming은 지원되는 모든 Oracle Cloud Infrastructure(OCI) 리전에서 사용할 수 있습니다. 목록을 보려면 리전 및 가용성 도메인 페이지를 참고하세요.
Streaming은 네트워킹에서 스토리지 및 데이터 Streaming에 필요한 구성까지 인프라 관리의 부담을 덜어주는 서버리스 서비스입니다. 인프라 프로비저닝, 지속적인 유지 관리 또는 보안 패치에 대해 걱정할 필요가 없습니다. Streaming 서비스는 3개의 가용성 도메인에 걸쳐 데이터를 동기식으로 복제하여 고가용성 및 데이터 내구성을 제공합니다. 단일 가용성 도메인이 있는 지역에서는 데이터가 3개의 장애 도메인에 복제됩니다.
Streaming을 사용하면 수백 개의 소스에서 실시간으로 생성된 데이터를 쉽게 수집, 저장 및 처리할 수 있으며, Streaming은 메시징에서 복잡한 데이터 스트림 처리에 이르기까지 거의 무제한의 사용 사례에 활용할 수 있습니다. 다음은 Streaming을 사용할 수 있는 다양한 방법 중 몇 가지 예입니다.
다음과 같은 방법으로 Streaming 사용을 시작할 수 있습니다.
또는 Kafka API를 사용하여 스트림에서 생성 및 소비할 수도 있습니다. 자세한 내용은 Apache Kafka에서 Streaming 사용하기를 참고하세요.
Streaming의 처리량은 스트림에 파티션을 추가하여 제한 없이 확장하도록 설계되었습니다. 단, Streaming을 사용하는 동안 명심해야 할 몇 가지 제한 사항이 있습니다.
Streaming은 스트림 기반 시멘틱을 제공합니다. Stream의 시멘틱은 파티션당 엄격한 순서 보장, 메시지 재생성, 클라이언트 측 커서 및 대규모 수평 처리량을 제공합니다. 단, 대기열은 이러한 기능을 제공하지 않습니다. FIFO 대기열을 사용하는 경우 순서를 보장하도록 설계할 수 있지만 성능에 상당한 간접비가 추가되는 희생을 감수해야 합니다.
스트림은 제작자 애플리케이션이 소비자 애플리케이션에서 데이터를 읽고 쓰는 파티션된 추가 전용 메시지 로그입니다.
스트림 풀은 스트림을 구성하고 관리하는 데 사용할 수 있는 그룹입니다. 스트림 풀은 여러 스트림에서 구성 설정을 공유하는 기능을 제공하여 운영상의 편리함을 제공합니다. 예를 들어, 사용자는 스트림 풀에서 사용자 지정 암호화 키와 같은 보안 설정을 공유하여 풀 내부의 모든 스트림 데이터를 암호화할 수 있습니다. 스트림 풀을 사용하면 스트림 풀 내의 모든 스트림에 대한 인터넷 액세스를 제한하여 스트림에 대한 비공개 엔드포인트를 생성할 수도 있습니다. Streaming의 Kafka 호환성 기능을 사용하는 고객의 경우 스트림 풀이 가상 Kafka 클러스터의 루트 역할을 하므로 해당 가상 클러스터의 모든 작업 범위를 해당 스트림 풀로 지정할 수 있습니다.
파티션은 스트림의 수평적 확장 및 생산 및 소비의 병렬 처리를 가능하게 하는 기본 처리량 단위입니다. 파티션은 1 MB/초 데이터 입력과 2 MB/초 데이터 출력 용량을 제공합니다. 스트림을 생성할 때는 애플리케이션의 처리량 요구 사항에 따라 필요한 파티션 수를 지정해야 합니다. 예를 들어, 10개의 파티션이 있는 스트림을 생성할 경우 10MB/초 입력 및 20MB/초 출력의 스트림 처리량을 달성할 수 있습니다. 기존 서비스 한도를 초과하는 파티션이 필요한 경우 Streaming은 50개 파티션 단위로 시간당 최소 10GB(PUT 및 GET 요청)의 예상 사용량을 적용합니다. 실제 사용량이 해당 요금에 미치지 못하더라도 최소 예상 사용량에 해당하는 요금이 청구됩니다.
메시지는 스트림에 저장된 데이터를 base64로 인코딩한 단위입니다. 스트림의 파티션에 생성할 수 있는 메시지의 최대 크기는 1MB입니다.
키는 관련 메시지를 그룹화하는 데 사용되는 식별자로 동일한 키를 가진 메시지는 동일한 파티션에 기록됩니다. Streaming을 사용하면 지정된 파티션의 모든 소비자가 해당 파티션의 메시지를 기록된 것과 정확히 동일한 순서로 읽을 수 있습니다.
생산자는 스트림에 메시지를 쓸 수 있는 클라이언트 애플리케이션입니다.
소비자는 하나 이상의 스트림에서 메시지를 읽을 수 있는 클라이언트 애플리케이션입니다. 소비자 그룹은 스트림에 있는 모든 파티션의 메시지를 조정하는 인스턴스 집합입니다. 특정 시간에 특정 파티션의 메시지는 해당 그룹의 단일 소비자만 사용할 수 있습니다.
커서는 스트림 위치에 대한 포인터입니다. 이 위치는 파티션의 특정 오프셋 또는 시간에 대한 포인터이거나 그룹의 현재 위치에 대한 포인터일 수 있습니다.
파티션 내의 각 메시지에는 오프셋이라는 식별자가 있습니다. 소비자는 특정 오프셋에서 시작하여 원하는 어느 오프셋 지점에서든 메시지를 읽을 수 있습니다. 또한 소비자가 최신 처리된 오프셋을 커밋하여 중지했다가 다시 시작할 경우 메시지를 표시하거나 누락하지 않고 작업을 재개할 수 있습니다.
Streaming은 기본적으로 사용되지 않을 때와 전송 중일 때 모두 데이터를 암호화합니다. Streaming은 Oracle Cloud Infrastructure Identity and Access Management(IAM)와 완전히 통합되어 있기 때문에 액세스 정책을 사용하여 사용자 및 사용자 그룹에 선택적으로 권한을 부여할 수 있습니다. REST API를 사용하는 동안 HTTPS 프로토콜을 사용하는 SSL 엔드포인트를 통해 Streaming에서 데이터를 안전하게 저장하고 가져올 수도 있습니다. 또한 Streaming은 '예기치 않은 트래픽 증가' 문제없이 완벽한 테넌트 수준의 데이터 격리 기능을 제공합니다.
Streaming 데이터는 메시지 무결성 보장과 함께 저장 및 전송 시 모두 암호화됩니다. Oracle이 암호화를 관리하도록 하거나 특정 규정 준수 또는 보안 표준을 충족해야 하는 경우 Oracle Cloud Infrastructure Vault를 사용하여 자체 암호화 키를 안전하게 저장하고 관리할 수 있습니다.
언제든지 스트림 풀의 데이터 암호화 설정을 편집함으로써 'Oracle 키에서 제공하는 암호화'와 '고객 관리 키를 사용하여 관리되는 암호화' 사용 간에 전환을 수행할 수 있습니다. Streaming은 이러한 활동을 수행할 수 있는 횟수에 제한을 두지 않습니다.
Streaming은 Oracle Cloud Infrastructure IAM과 완벽하게 통합됩니다. 모든 스트림에는 구획이 할당되어 있습니다, 사용자는 테넌시, 구획 또는 단일 스트림 수준에서 세분화된 규칙을 설명하는 데 사용할 수 있는 역할 기반 액세스 제어 정책을 지정할 수 있습니다.
액세스 정책은 '<conditions의 <location>에서 <verb> <resource-type> 허용' 형식으로 지정됩니다.
Kafka 프로토콜을 사용한 인증은 인증 토큰 및 SASL/PLAIN 메커니즘을 사용합니다. 콘솔 사용자 세부 정보 페이지에서 토큰을 생성할 수 있습니다. 자세한 내용은 인증 토큰 사용하기를 참고하세요. 전용 그룹/사용자를 생성하고 해당 그룹에 적절한 구획 또는 테넌시에서 스트림을 관리할 수 있는 권한을 부여하는 것이 좋습니다. 그런 다음 생성한 사용자에 대한 인증 토큰을 생성하여 Kafka 클라이언트 구성에서 사용할 수 있습니다.
프라이빗 엔드포인트는 인터넷을 통해 스트림에 액세스할 수 없도록 테넌시 내에서 지정된 가상 클라우드 네트워크(VCN)에 대한 액세스를 제한합니다. 프라이빗 엔드포인트는 VCN 내의 프라이빗 IP 주소를 스트림 풀에 연결하여 Streaming 트래픽이 인터넷을 통과하지 못하도록 합니다. Streaming을 위한 프라이빗 엔드포인트를 생성하려면 스트림 풀을 생성할 때 프라이빗 서브넷이 있는 VCN에 액세스해야 합니다. 자세한 내용은 프라이빗 엔드포인트 정보와 VCN 및 서브넷을 참고하세요.
보통 장기간 저장할 목적으로 스트림에 데이터를 유지하기 위해 스트림의 내용을 오브젝트 스토리지 버킷 버킷에 직접 기록할 수도 있는데, 이는 Streaming과 함께 S3용 Kafka Connect를 사용하여 달성할 수 있습니다. 자세한 내용은 Oracle Streaming Service에서 Object Storage로 게시하기 블로그 게시글을 참고하세요.
Oracle Autonomous Transaction Processing 인스턴스의 테이블에서 데이터를 수집할 수 있습니다. 자세한 내용은 Oracle Streaming Service 및 Autonomous DB와 함께 Kafka Connect 사용하기 블로그 게시글을 참고하세요.
Kafka SDK를 사용하여 Streaming에서 메시지를 생성하고 사용할 수 있으며 Micronaut의 기본 제공 Kafka 지원을 사용할 수 있습니다. 자세한 내용은 Micronaut의 Kafka 지원 및 Oracle Streaming Service를 통한 간편한 메시징 블로그 게시글을 참고하세요.
자세한 내용은 MQTT 브로커의 IoT 데이터를 OCI-Oracle Streaming Service, OCI- Kafka Connect Harness, Oracle Kubernetes Engine으로 수집하기 블로그 게시글을 참고하세요.
Oracle GoldenGate for Big Data는 이제 Streaming과 통합하도록 인증되었습니다. 자세한 내용은 Oracle GoldenGate for Big Data 설명서의 Oracle Streaming Service에 연결하기를 참고하세요.
Streaming 데이터를 Oracle Autonomous Data Warehouse로 직접 전송하려면 Kafka JDBC Sink Connect를 사용해야 합니다.
Streaming은 사용한 리소스에 대한 비용만을 지불하면 되는 단순한 종량 요금제를 사용합니다. 요금 부과 요소는 다음과 같습니다.
기존 서비스 한도를 초과하는 파티션이 필요한 경우 50개 파티션 단위로 시간당 최소 10GB(PUT 및 GET 요청)의 예상 사용량이 적용됩니다. 실제 사용량이 최소 예상 사용량보다 적은 경우에도 최소 예상 사용량에 대한 요금이 부과됩니다.
최신 가격 정보는 Streaming 제품 페이지를 참고하세요.
Streaming은 기본 서비스 한도 내에서 사용한 서비스에 대한 비용만을 청구하는 업계 최고의 가격 모델을 제공합니다. 기존 서비스 한도를 초과하는 파티션이 필요한 경우 Streaming은 50개 파티션 단위로 시간당 최소 10GB(PUT 및 GET 요청)의 예상 사용량을 적용합니다. 실제 사용량이 최소 예상 사용량에 미치지 못한 경우에도 최소 예상 사용량에 해당하는 요금이 청구됩니다. 예: 10GB x $0.025 = 50개 파티션마다 시간당 $0.25 부과
Streaming은 서비스 내외부로의 데이터 이동에 따른 추가 요금은 부과하지 않습니다. 또한 사용자는 서비스 커넥터 허브의 기능을 활용하여 추가 비용 없이 서버리스 방식으로 스트리밍 간에 데이터를 이동시킬 수 있습니다.
현재 Streaming은 무료 요금제를 제공하지 않습니다.
Identity and Access Management를 사용하면 클라우드 리소스에 액세스할 수 있는 대상을 제어할 수 있습니다. Oracle Cloud Infrastructure(OCI) 리소스를 사용하려면 SDK, CLI 또는 기타 도구와 함께 콘솔을 사용하든 REST API를 사용하든 관계없이 관리자가 작성한 정책에서 필요한 유형의 액세스 권한을 부여 받아야 합니다. 액세스 정책은 다음 형식으로 지정됩니다.
Allow <subject> to <verb> <resource-type> in <location> where <conditions>
테넌시 관리자는 정책을 사용할 수 있습니다.
Allow group StreamAdmins to manage streams in tenancy
지정된 그룹 StreamAdmins가 스트림 및 관련 리소스 생성, 업데이트, 등록, 삭제에 이르기까지 스트리밍으로 모든 작업을 수행할 수 있습니다. 그러나 언제든지 그룹에서 지정된 사용자만이 주어진 스트림에서 수행할 수 있는 활동의 하위 집합에만 적합하도록 보다 세분화된 정책을 지정할 수 있습니다. 정책을 처음 사용하는 경우 정책 시작하기 및 공통 정책을 참고하세요. Streaming 정책 작성에 대해 자세히 알아보려면 IAM 정책 자료에서 Streaming Service에 대한 세부 정보를 참고하세요.
Oracle Cloud infrastructure Resource Manager 또는 Oracle Cloud Infrastructure Terraform 공급자를 사용하여 스트림 및 IAM 정책, 파티션, 암호화 설정 등과 같은 모든 관련 구성 요소를 프로비저닝할 수 있습니다. Terraform 공급업체에 대한 자세한 내용은 Streaming 서비스에 대한 Terraform 주제를 참고하세요.
스트림 생성 시 스트림의 파티션 수를 지정해야 합니다. 애플리케이션의 예상 처리량을 참고하여 스트림의 파티션 수를 결정할 수 있습니다. 평균 메시지 크기에 초당 작성되는 최대 메시지 수를 곱하면 예상 처리량을 추정할 수 있습니다. 단일 파티션은 쓰기 속도가 초당 1MB로 제한되므로 처리량이 많을수록 제한을 피하기 위한 추가 파티션이 필요합니다. 애플리케이션 급증을 관리할 수 있도록 최대 처리량보다 약간 더 많은 파티션을 할당하는 것이 좋습니다.
스트림 생성 시 콘솔에서 또는 프로그래밍 방식으로 파티션을 생성합니다.
콘솔 UI:
프로그래밍 방식:
스트림 생성
CreateStreamDetails streamDetails =
CreateStreamDetails.builder()
.compartmentId(compartmentId)
.name(streamName)
.partitions(partitions)
.build();
더 자세한 예는 SDK로 제공됩니다.
Streaming은 파티션을 내부적으로 관리하므로 별도로 관리할 필요가 없습니다. 사용자는 파티션을 직접 삭제할 수 없습니다. 스트림을 삭제하면 해당 스트림과 관련된 모든 파티션이 삭제됩니다.
Oracle Cloud Infrastructure(OCI) 스트림의 처리량은 파티션에 의해 정의됩니다. 파티션은 초당 1MB의 데이터 입력 및 2MB의 데이터 출력을 제공합니다.
파티션을 더 추가하여 Oracle Cloud Infrastructure(OCI) 스트림의 처리량을 확장할 수 있습니다. 이론상으로 스트림이 보유할 수 있는 파티션 수에는 제한이 없습니다. 다만, 각 Oracle Cloud Infrastructure(OCI) 테넌시는 기본적으로 Universal Credits 유형 계정별로 파티션 수가 5개로 제한되어 있습니다. 더 많은 파티션이 필요하면 언제든지 요청하여 서비스 한도를 늘릴 수 있습니다.
다음 단계에 따라 서비스 한도 증가를 요청할 수 있습니다.
다음은 스트림 생성 시 염두에 두어야 할 몇 가지 모범 사례입니다.
스트림이 생성되고 '활성' 상태가 되면 메시지 생성을 시작할 수 있습니다. 콘솔을 사용하거나 API를 통해 스트림을 생성할 수 있습니다.
콘솔의 경우: 솔루션 및 플랫폼 > 분석 탭 아래에 있는 콘솔의 스트리밍 서비스 섹션으로 이동합니다. 이미 생성된 스트림이 있는 경우 구획에서 스트림을 선택하고 '스트림 세부 정보' 페이지로 이동합니다. 콘솔에서 '테스트 메시지 생성' 버튼을 클릭합니다. 이렇게 하면 메시지에 파티션 키가 임의로 할당되고 스트림의 파티션에 기록됩니다. 생성된 메시지는 최근 메시지 섹션에서 메시지 로드 버튼을 클릭하여 확인할 수 있습니다.
API의 경우: Oracle Cloud Infrastructure Streaming API 또는 Kafka API를 사용하여 스트림에 메시지를 생성할 수 있습니다. 메시지는 스트림의 파티션에 게시됩니다. 파티션이 두 개 이상인 경우 메시지를 보낼 파티션을 선택하는 키를 지정해야 합니다. 키를 지정하지 않으면 Streaming이 UUID를 생성하여 사용자 대신 키를 할당하고 메시지를 임의 파티션으로 보냅니다. 이렇게 하면 키가 없는 메시지가 모든 파티션에 고르게 배포됩니다. 그러나 데이터 분할 전략을 명시적으로 제어할 수 있도록 항상 메시지 키를 지정하는 것이 좋습니다.
Streaming SDK를 사용하여 스트림에 메시지를 생성하는 방법에 대한 예는 설명서를 참고하세요.
Oracle Cloud Infrastructure API를 사용하여 메시지를 생성하는 동안 스트리밍에 의해 분할 논리가 제어됩니다. 이를 서버 측 분할이라고 합니다. 사용자는 키에 기반하여 보낼 파티션을 선택합니다. 키는 해시되고 결과 값은 메시지를 보낼 파티션 번호를 결정하는 데 사용됩니다. 동일한 키를 가진 메시지는 동일한 파티션으로 이동합니다. 키가 다른 메시지는 다른 파티션 또는 동일한 파티션으로 이동할 수 있습니다.
단, Kafka API를 사용하여 스트림을 생성하는 경우 분할은 Kafka 클라이언트에서 제어하고 Kafka 클라이언트의 파티셔너는 논리 분할을 담당합니다. 이를 클라이언트 측 분할이라고 합니다.
메시지를 균일하게 분할하려면 효과적인 메시지 키 값이 필요합니다. 키 값을 생성하려면 스트리밍 데이터의 선택성과 카디널리티(Cardinality)를 고려해야 합니다.
항상 카디널리티는 많게, 선택성은 적게 하는 것을 목표로 하세요.
Streaming은 파티션 내에서 선형화 가능한 읽기 및 쓰기가 가능하도록 해줍니다. 같은 값을 가진 메시지를 동일한 파티션으로 이동시키려면 해당 메시지에 동일한 키를 사용해야 합니다.
파티션은 1MB/초의 데이터 입력 속도를 제공하고 초당 최대 1000개의 PUT 메시지를 지원합니다. 따라서 레코드 크기가 1KB 미만인 경우 파티션의 실제 데이터 입력 속도는 초당 최대 PUT 메시지 수에 의해 제한되는 1MB/초 미만이 됩니다. 메시지를 일괄적으로 생성하는 것이 좋은데, 그 이유는 다음과 같습니다.
일괄 처리되는 메시지의 크기는 1MB를 초과하지 않아야 합니다. 이 한도를 초과하면 트래픽 조절 메커니즘이 개시됩니다.
조각화 기능을 사용하거나 Oracle Cloud Infrastructure Object Storage를 사용하여 메시지를 보낼 수 있습니다.
생산자가 초당 1MB 이상의 속도로 데이터를 생성할 경우 요청이 제한되며, 과도한 파티션별 초당 요청이 수신되고 있음을 나타내는 429, 너무 많은 요청 오류가 클라이언트로 다시 전송됩니다.
소비자는 하나 이상의 스트림에서 메시지를 읽는 엔터티입니다. 이 엔터티는 단독으로 존재할 수도 있고 소비자 그룹의 일부로 포함되어 있을 수도 있습니다. 메시지를 소비하려면 커서를 생성한 다음 해당 커서를 사용하여 메시지를 읽어야 합니다. 커서는 스트림의 위치를 가리킵니다. 이 위치는 파티션 또는 그룹의 현재 위치에서 특정 오프셋 또는 시간일 수 있습니다. 읽을 위치에 따라 TRIM_HORIZON
, AT_OFFSET
, AFTER_OFFSET
, AT_TIME
, LATEST.
등의 다양한 커서 유형을 사용할 수 있습니다.
메시지 소비에 대한 자세한 내용은 설명서를 참고하세요.
GetMessageRequest 클래스의 getLimit() 메서드는 최대 메시지 수를 반환하며, 최대 10,000개의 값을 지정할 수 있습니다. 서비스에서는 기본적으로 최대한 많은 메시지를 반환합니다. 스트림에서 처리량을 초과하지 않도록 평균 메시지 크기를 고려해야 합니다. Streaming getMessage 배치 크기는 특정 스트림에 생성된 평균 메시지 크기를 기반으로 합니다.
Streaming은 소비자에게 '최소 1회'의 시맨틱을 제공합니다. 소비자 애플리케이션에서 중복 작업을 처리하는 것이 좋습니다. 예를 들어, 이전에 비활성 상태였던 소비자 그룹의 인스턴스가 그룹에 다시 참여하고 이전에 할당된 인스턴스에서 커밋되지 않은 메시지를 사용하기 시작하면 중복을 처리할 가능성이 있습니다.
소비자가 소비할 수 있는 것보다 더 빨리 메시지가 생성되는 경우 경우 소비자가 뒤처지고 있다고 합니다. 소비자가 뒤처지고 있는지 확인하려면 메시지의 타임스탬프를 사용하면 됩니다. 소비자가 뒤처지고 있다면 새 소비자를 생성하여 첫 번째 소비자로부터 파티션 일부를 인계하는 것을 고려하세요. 다만, 단일 파티션에서 뒤처지고 있는 경우에는 복구할 방법이 없습니다.
다음 옵션을 고려하세요.
지정된 파티션에서 소비되어야 할 메시지 수를 확인하려면 LATEST
커서 유형을 사용하여 다음에 게시한 메시지의 오프셋을 가져오고 현재 사용 중인 오프셋을 사용하여 델타를 만듭니다. 조밀한 오프셋이 없으므로 대략적인 추정치만 얻을 수 있습니다. 그러나 생산자가 생성을 중단하면 다음에 게시된 메시지의 오프셋을 얻을 수 없으므로 이러한 정보를 얻을 수 없습니다.
소비자들이 그룹의 일부로 메시지를 사용하도록 구성할 수 있습니다. 스트림 파티션은 그룹의 구성원 간에 배포되므로 단일 파티션의 메시지는 단일 소비자에게만 전송됩니다. 파티션 할당은 소비자가 그룹에 참여하거나 탈퇴 시 재조정됩니다. 소비자 그룹에 대한 자세한 내용은 설명서를 참고하세요.
소비자 그룹은 다음과 같은 장점을 제공합니다.
스트림당 소비자 그룹은 50개로 제한됩니다. 소비자 그룹은 일시적인 것으로 스트림 보존 기간 동안 사용하지 않으면 사라집니다.
Streaming의 다음 구성 요소에는 시간 제한이 있습니다.
재조정이란 동일한 소비자 그룹에 속한 인스턴스 그룹이 특정 스트림에 속하는 상호 배타적인 파티션 집합을 소유하도록 조정하는 프로세스입니다. 소비자 그룹에 대한 재조정 작업이 성공적으로 끝나면 스트림 내의 모든 파티션이 그룹 내의 하나 이상의 소비자 인스턴스에 의해 소유됩니다.
소비자 그룹의 인스턴스가 30초 이상 Heartbeat를 전송하지 못하거나 프로세스가 종료되어 비활성화되면 소비자 그룹 내에서 재조정 활동이 트리거됩니다. 이는 이전에 비활성 인스턴스에서 사용된 파티션을 처리하고 활성 인스턴스에 재할당하기 위한 것입니다. 마찬가지로 이전에 비활성 상태였던 소비자 그룹의 인스턴스가 그룹에 참여하면 사용할 시작할 파티션을 할당하기 위해 재조정이 트리거됩니다. Streaming 서비스는 그룹에 다시 참여할 때 인스턴스를 동일한 파티션에 재할당하는 것을 보장하지 않습니다.
장애를 복구하려면 각 파티션에 대해 마지막으로 처리한 메시지의 오프셋을 저장하여, 소비자를 재시작해야 하는 경우 해당 메시지에서 소비를 시작하도록 해야 합니다.
참고: 커서는 5분 후에 만료되므로 저장하지 마세요.
마지막으로 처리한 메시지의 오프셋을 저장하는 지침은 제공하지 않으므로 원하는 방법을 사용할 수 있습니다. 예를 들어, 커서를 다른 스트림, VM의 파일 또는 Object Storage 버킷에 저장할 수 있습니다. 소비자가 다시 시작되면 마지막으로 처리한 메시지의 오프셋을 읽은 다음 AFTER_OFFSET
유형 커서를 만들고 방금 받은 오프셋을 지정합니다.
Streaming 서비스는 기존 Apache Kafka 기반 애플리케이션에서 사용할 수 있는 Kafka 엔드포인트를 제공합니다. 완전 관리형 Kafka 환경을 만들려면 구성만 변경하면 됩니다. Streaming의 Kafka 호환성은 자체 Kafka 클러스터 실행에 대한 대안을 제공합니다. Streaming은 Apache Kafka 1.0 이상 클라이언트 버전을 지원하며 기존 Kafka 애플리케이션, 도구 및 프레임워크에서 작동합니다.
기존 Kafka 애플리케이션을 사용하는 고객은 Kafka 구성 파일의 다음 매개 변수를 변경하여 스트리밍으로 마이그레이션할 수 있습니다.
security.protocol: SASL_SSL
sasl.mechanism: PLAIN
sasl.jaas.config: org.apache.kafka.common.security.plain.PlainLoginModule required username="{username}" password="{pwd}";
bootstrap.servers: kafka.streaming.{region}.com:9092
# Application settings
topicName: [streamOcid]
Streaming에서 Kafka 커넥터를 사용하려면 콘솔 또는 명령줄 인터페이스(CLI)를 사용하여 Kafka Connect 구성을 생성합니다. Streaming API는 이러한 구성 하네스를 호출합니다. 지정된 구획에서 생성된 Kafka Connect 구성은 동일한 구획의 스트림에 대해서만 작동합니다. 동일한 Kafka Connect 구성으로 여러 Kafka 커넥터를 사용할 수 있습니다. 별도의 구획에서 스트림을 생성하거나 사용해야 하는 경우나 Kafka Connect 구성에서 스로틀 한도에 도달하지 않도록 더 많은 용량이 필요한 경우(예: 커넥터가 너무 많거나 커넥터에 너무 많은 작업자가 있는 경우) Kafka 커넥터 구성을 더 생성할 수 있습니다.
Streaming의 Kafka Connect 호환성은 기존의 많은 자사 및 타사 커넥터를 활용하여 데이터를 소스에서 대상으로 이동할 수 있음을 의미합니다. Oracle 제품용 Kafka 커넥터는 다음과 같습니다.
타사 Kafka 소스 및 싱크 커넥터의 전체 목록은 공식 Confluent Kafka 허브를 참고하세요.
Streaming은 Oracle Cloud Infrastructure Monitoring과 완벽하게 통합됩니다. 콘솔에서 모니터링할 스트림을 선택합니다. 스트림 세부 정보 페이지에서 리소스 섹션으로 이동한 다음 생성 모니터링 차트를 클릭하여 제작자 요청을 모니터링합니다. 또는 소비 모니터링 차트를 클릭하여 소비자 측 측정 지표를 모니터링합니다. 측정 지표는 파티션 수준이 아닌 스트림 수준에서 사용할 수 있습니다. 지원되는 Streaming 측정 지표에 대한 설명은 설명서를 참고하세요.
Console에서 사용 가능한 각 측정 지표는 다음 통계를 제공합니다.
이러한 통계는 다음과 같은 간격으로 제공됩니다.
생산자의 경우 다음 측정 지표에 대해 경보를 설정할 수 있습니다:
소비자의 경우 다음 측정 지표를 기반으로 동일한 경보를 설정합니다.
스트림은 활성 상태일 때 정상입니다. 스트림에서 작업을 수행할 수 있고 반응이 성공적이면 스트림이 정상이라고 볼 있습니다. 소비자는 스트림에서 데이터가 생성된 후 구성된 보존 기간 동안 액세스할 수 있습니다. GetMessages API 호출이 높은 수준의 내부 서버 오류를 반환하는 경우 서비스가 정상 상태가 아닌 것으로 판단할 수 있습니다.
정상 스트림에는 다음과 같은 정상 측정 지표가 있습니다.
제한은 스트림이 새로운 읽기 또는 쓰기를 처리할 수 없음을 나타냅니다. 다음 임계 값을 초과하면 제한 메커니즘이 활성화됩니다.
API 오류에 대한 자세한 내용은 설명서에서 확인할 수 있습니다.