죄송합니다. 검색 내용과 일치하는 항목을 찾지 못했습니다.

원하시는 정보를 찾는 데 도움이 되도록 다음을 시도해 보십시오.

  • 검색에 사용하신 키워드의 철자가 올바른지 확인하십시오.
  • 입력한 키워드에 동의어를 사용하십시오. 예를 들어 “소프트웨어” 대신 “애플리케이션”을 사용해 보십시오.
  • 새로운 검색을 시작하십시오.
문의하기 Oracle Cloud에 로그인

Infrastructure Streaming Cloud FAQ

모두 열기 모두 닫기

    일반적인 질문

  • Oracle Cloud Infrastructure Streaming이란 무엇입니까?

    Oracle Cloud Infrastructure(OCI) Streaming은 실시간으로 사용 및 처리할 수 있는 지속적으로 대용량 데이터 스트림을 수집하기 위한 확장 가능하고 내구성이 뛰어난 완전 관리형 메시징 솔루션을 제공합니다. Streaming은 지원되는 모든 오라클 클라우드 인프라스트럭쳐(OCI) 지역에서 사용할 수 있습니다. 목록을 보려면 지역 및 가용성 도메인 페이지를 참조하세요.

  • Streaming을 사용해야 하는 이유는 무엇입니까?

    Streaming은 네트워킹에서 스토리지 및 데이터 Streaming에 필요한 구성까지 인프라 관리의 부담을 덜어주는 서버리스 서비스입니다. 인프라 프로비저닝, 지속적인 유지 관리 또는 보안 패치에 대해 걱정할 필요가 없습니다. Streaming 서비스는 3개의 가용성 도메인에 걸쳐 데이터를 동기식으로 복제하여 고가용성 및 데이터 내구성을 제공합니다. 단일 가용성 도메인이 있는 지역에서는 데이터가 3개의 장애 도메인에 복제됩니다.

  • Streaming은 어떻게 사용합니까?

    Streaming을 사용하면 수백 개의 소스에서 실시간으로 생성된 데이터를 쉽게 수집, 저장 및 처리할 수 있으며, Streaming은 메시징에서 복잡한 데이터 스트림 처리에 이르기까지 거의 무제한의 사용 사례에 활용할 수 있습니다. 다음은 Streaming을 사용할 수 있는 다양한 방법 중 몇 가지 예입니다.

    • 메시징: Streaming을 사용하여 대형 시스템의 구성 요소를 분리합니다. 생산자와 소비자는 Streaming을 비동기 메시지 버스로 사용하고 원하는 속도로 독립적으로 행동할 수 있습니다.
    • 측정 지표 및 로그 수집: Streaming을 기존의 파일 스크래핑 방식의 대안으로 사용하여 중요한 운영 데이터를 인덱싱, 분석 및 시각화에 신속하게 사용할 수 있습니다.
    • 웹 또는 모바일 활동 데이터 입수: Streaming을 사용하여 페이지 보기, 검색 또는 기타 사용자 작업과 같은 웹사이트 또는 모바일 앱의 활동을 캡처합니다. 이러한 정보는 실시간 모니터링 및 분석은 물론 오프라인 처리 및 보고를 위한 데이터 웨어하우징 시스템에도 사용할 수 있습니다.
    • 인프라 및 앱 이벤트 처리: 스트리밍을 클라우드 구성요소의 통합 시작점으로 사용하여 감사, 회계 및 관련 활동에 대한 수명 주기 이벤트를 보고합니다.
  • Streaming 사용을 시작하려면 어떻게 해야 합니까?

    다음과 같은 방법으로 Streaming 사용을 시작할 수 있습니다.

    1. Oracle Cloud Infrastructure 콘솔 또는 CreateStream API 작업을 사용하여 스트림을 생성합니다.
    2. 스트림에 메시지를 게시하도록 제작자를 구성합니다. 메시지 게시하기를 참조하세요.
    3. 스트림에서 데이터를 읽고 처리할 수 있는 소비자를 구축합니다. 메시지 소비하기를 참조하세요.

    또는 Kafka API를 사용하여 스트림에서 생성 및 소비할 수도 있습니다. 자세한 내용은 Apache Kafka에서 Streaming 사용하기을 참조하세요.

  • Streaming 서비스의 제한 사항은 무엇입니까?

    Streaming의 처리량은 스트림에 파티션을 추가하여 제한 없이 확장하도록 설계되었습니다. 단, Streaming을 사용하는 동안 명심해야 할 몇 가지 제한 사항이 있습니다.

    • 스트림에 있는 메시지의 최대 보관 기간은 7일이며,
    • 스트림으로 생성할 수 있는 고유 메시지의 최대 크기는 1MB입니다.
    • 각 파티션은 쓰기 요청 수에 관계없이 초당 최대 1MB의 메시지를 처리할 수 있으며,
    • 최대 1MB/초의 데이터 쓰기 속도와 2MB/초의 읽기 속도를 지원할 수 있습니다.
  • Streaming은 대기열 기반 서비스와 어떻게 다릅니까?

    Streaming은 스트림 기반 시멘틱을 제공합니다. Stream의 시멘틱은 파티션당 엄격한 순서 보장, 메시지 재생성, 클라이언트 측 커서 및 대규모 수평 처리량을 제공합니다. 단, 대기열은 이러한 기능을 제공하지 않습니다. FIFO 대기열을 사용하는 경우 순서를 보장하도록 설계할 수 있지만 성능에 상당한 간접비가 추가되는 희생을 감수해야 합니다.

    주요 컨셉

  • 스트림이란 무엇입니까?

    스트림은 제작자 애플리케이션이 소비자 애플리케이션에서 데이터를 읽고 쓰는 파티션된 추가 전용 메시지 로그입니다.

  • 스트림 풀이란 무엇입니까?

    스트림 풀은 스트림을 구성하고 관리하는 데 사용할 수 있는 그룹입니다. 스트림 풀은 여러 스트림에서 구성 설정을 공유하는 기능을 제공하여 운영상의 편리함을 제공합니다. 예를 들어, 사용자는 스트림 풀에서 사용자 지정 암호화 키와 같은 보안 설정을 공유하여 풀 내부의 모든 스트림 데이터를 암호화할 수 있습니다. 스트림 풀을 사용하면 스트림 풀 내의 모든 스트림에 대한 인터넷 액세스를 제한하여 스트림에 대한 비공개 엔드포인트를 생성할 수도 있습니다. Streaming의 Kafka 호환성 기능을 사용하는 고객의 경우 스트림 풀이 가상 Kafka 클러스터의 루트 역할을 하므로 해당 가상 클러스터의 모든 작업 범위를 해당 스트림 풀로 지정할 수 있습니다.

  • 파티션이란 무엇입니까?

    파티션은 스트림에서 생산 및 소비의 수평 확장 및 병렬 처리를 가능하게 하는 스트림의 기본 처리량 단위입니다. 파티션은 1MB/초 데이터 입력과 2MB/초 데이터 출력 용량을 제공합니다. 스트림을 생성할 때는 애플리케이션의 처리량 요구 사항에 따라 필요한 파티션 수를 지정해야 합니다. 예를 들어, 10개의 파티션이 있는 스트림을 생성할 경우 스트림에 10MB/초 입력 및 20MB/초 출력의 처리량을 달성할 수 있습니다.

  • 메시지란 무엇입니까?

    메시지는 스트림에 저장된 데이터를 base64로 인코딩한 단위입니다. 스트림의 파티션에 생성할 수 있는 메시지의 최대 크기는 1MB입니다.

  • 키(key)는 무엇입니까?

    키는 관련 메시지를 그룹화하는 데 사용되는 식별자로 동일한 키를 가진 메시지는 동일한 파티션에 기록됩니다. Streaming을 사용하면 지정된 파티션의 모든 소비자가 해당 파티션의 메시지를 기록된 것과 정확히 동일한 순서로 읽을 수 있습니다.

  • 생산자란 무엇입니까?

    생산자는 스트림에 메시지를 쓸 수 있는 클라이언트 애플리케이션입니다.

  • 소비자와 소비자 그룹은 무엇입니까?

    소비자는 하나 이상의 스트림에서 메시지를 읽을 수 있는 클라이언트 애플리케이션입니다. 소비자 그룹은 스트림에 있는 모든 파티션의 메시지를 조정하는 인스턴스 집합입니다. 특정 시간에 특정 파티션의 메시지는 해당 그룹의 단일 소비자만 사용할 수 있습니다.

  • 커서란 무엇입니까?

    커서는 스트림 위치에 대한 포인터입니다. 이 위치는 파티션의 특정 오프셋 또는 시간에 대한 포인터이거나 그룹의 현재 위치에 대한 포인터일 수 있습니다.

  • 오프셋이란 무엇입니까?

    파티션 내의 각 메시지에는 오프셋이라는 식별자가 있습니다. 소비자는 특정 오프셋에서 시작하여 원하는 어느 오프셋 지점에서든 메시지를 읽을 수 있습니다. 또한 소비자가 최신 처리된 오프셋을 커밋하여 중지했다가 다시 시작할 경우 메시지를 표시하거나 누락하지 않고 작업을 재개할 수 있습니다.

    보안

  • Oracle Cloud Infrastructure Streaming을 사용할 때 내 데이터는 얼마나 안전합니까?

    Streaming은 기본적으로 사용되지 않을 때와 전송 중일 때 모두 데이터를 암호화합니다. Streaming은 Oracle Cloud Infrastructure Identity and Access Management(IAM)와 완전히 통합되어 있기 때문에 액세스 정책을 사용하여 사용자 및 사용자 그룹에 선택적으로 권한을 부여할 수 있습니다. REST API를 사용하는 동안 HTTPS 프로토콜을 사용하는 SSL 엔드포인트를 통해 Streaming에서 데이터를 안전하게 저장하고 가져올 수도 있습니다. 또한 Streaming은 '예기치 않은 트래픽 증가' 문제없이 완벽한 테넌트 수준의 데이터 격리 기능을 제공합니다.

  • 자체 마스터 키 세트를 사용하여 스트림의 데이터를 암호화할 수 있습니까?

    Streaming 데이터는 메시지 무결성 보장과 함께 저장 및 전송 시 모두 암호화됩니다. Oracle이 암호화를 관리하도록 하거나 특정 규정 준수 또는 보안 표준을 충족해야 하는 경우 Oracle Cloud Infrastructure Vault를 사용하여 자체 암호화 키를 안전하게 저장하고 관리할 수 있습니다.

  • 생성 후 편집할 수 있는 스트림 풀 보안 설정은 무엇입니까?

    언제든지 스트림 풀의 데이터 암호화 설정을 편집함으로써 '오라클 키에서 제공하는 암호화'와 '고객 관리 키를 사용하여 관리되는 암호화'사용 간에 전환을 수행할 수 있습니다. Streaming은 이러한 활동을 수행할 수 있는 횟수에 제한을 두지 않습니다.

  • 스트림에 대한 액세스를 어떻게 관리하고 제어합니까?

    Streaming은 Oracle Cloud Infrastructure IAM과 완벽하게 통합됩니다. 모든 스트림에는 구획이 할당되어 있습니다, 사용자는 테넌시, 구획 또는 단일 스트림 수준에서 세분화된 규칙을 설명하는 데 사용할 수 있는 역할 기반 액세스 제어 정책을 지정할 수 있습니다.

    액세스 정책은 '<conditions의 <location>에서 <verb> <resource-type> 허용' 형식으로 지정됩니다.

  • Kafka 사용자는 Streaming에 어떤 인증 메커니즘을 사용해야 합니까?

    Kafka 프로토콜을 사용한 인증은 인증 토큰 및 SASL/PLAIN 메커니즘을 사용합니다. 콘솔 사용자 세부 정보 페이지에서 토큰을 생성할 수 있습니다. 자세한 내용은 인증 토큰 작업참조하세요. 전용 그룹/사용자를 생성하고 해당 그룹에 적절한 구획 또는 테넌시에서 스트림을 관리할 수 있는 권한을 부여하는 것이 좋습니다. 그런 다음 생성한 사용자에 대한 인증 토큰을 생성하여 Kafka 클라이언트 구성에서 사용할 수 있습니다.

  • 공용 IP를 사용하지 않고 내 가상 클라우드 네트워크(VCN)에서 Streaming API에 비공개로 액세스할 수 있습니까?

    프라이빗 엔드포인트는 인터넷을 통해 스트림에 액세스할 수 없도록 테넌시 내에서 지정된 가상 클라우드 네트워크(VCN)에 대한 액세스를 제한합니다. 프라이빗 엔드포인트는 VCN 내의 프라이빗 IP 주소를 스트림 풀에 연결하여 Streaming 트래픽이 인터넷을 통과하지 못하도록 합니다. Streaming을 위한 프라이빗 엔드포인트를 생성하려면 스트림 풀을 생성할 때 프라이빗 서브넷이 있는 VCN에 액세스해야 합니다. 자세한 내용은 프라이빗 엔드포인트 정보VCN 및 서브넷을 참조하십시오.

    가격 정책

  • Oracle Cloud Infrastructure Streaming 사용 요금은 어떻게 부과됩니까?

    Streaming은 선납 비용 없이 사용한 리소스에 대해서만 비용을 지불하면 되는 단순한 종량 요금제를 적용합니다. 요금 부과 범위에는 다음이 포함됩니다.

    • GET/PUT 요청 가격(전송된 데이터의 기가바이트)
    • 데이터를 보존에 소요된 기간에 따라 결정되는 스토리지 가격(시간당 기가 바이트 단위 스토리지)

    최신 가격 정보는 Streaming 제품 페이지를 참조하세요.

  • 서비스를 사용하지 않아도 프로비저닝 요금이 부과되나요?

    Streaming은 서비스를 사용할 때만 비용을 지불하면 되는 업계 최고의 요금제를 적용하고 있습니다. 이는 리소스를 사용하지 않을 때는 추가 비용을 지불하지 않아도 됨을 의미합니다.

  • Streaming 내외부로 데이터 이동 시 추가 요금이 발생합니까?

    Streaming은 서비스 내외부로의 데이터 이동에 따른 추가 요금은 부과하지 않습니다. 또한 사용자는 서비스 커넥터 허브의 기능을 활용하여 추가 비용 없이 서버리스 방식으로 스트리밍 간에 데이터를 이동시킬 수 있습니다.

  • Streaming은 무료 요금제를 제공합니까?

    현재 Streaming은 무료 요금제를 제공하지 않습니다.

    Oracle Cloud Infrastructure Streams 관리

  • Streaming에 액세스하려면 어떤 IAM 권한이 필요합니까?

    Identity and Access Management를 사용하면 클라우드 리소스에 액세스할 수 있는 대상을 제어할 수 있습니다. 오라클 클라우드 인프라스트럭쳐(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:

    Big Data Streaming FAQ 8

    프로그래밍 방식:

    스트림 생성

    CreateStreamDetails streamDetails =
            CreateStreamDetails.builder()
                    .compartmentId(compartmentId)
                    .name(streamName)
                    .partitions(partitions)
                    .build();

    더 자세한 예는 SDK로 제공됩니다.

    Streaming은 파티션을 내부적으로 관리하므로 별도로 관리할 필요가 없습니다. 사용자는 파티션을 직접 삭제할 수 없습니다. 스트림을 삭제하면 해당 스트림과 관련된 모든 파티션이 삭제됩니다.

  • 스트림에 요청할 수 있는 최소 처리량은 얼마입니까?

    오라클 클라우드 인프라스트럭쳐(OCI) 스트림의 처리량은 파티션에 의해 정의됩니다. 파티션은 초당 1MB의 데이터 입력 및 2MB의 데이터 출력을 제공합니다.

  • 스트림에 요청할 수 있는 최대 처리량은 얼마입니까?

    파티션을 더 추가하여 오라클 클라우드 인프라스트럭쳐(OCI) 스트림의 처리량을 확장할 수 있습니다. 이론상으로 스트림이 보유할 수 있는 파티션 수에는 제한이 없습니다. 다만, 각 오라클 클라우드 인프라스트럭쳐(OCI) 테넌시는 기본적으로 Universal Credits 유형 계정별로 파티션 수가 5개로 제한되어 있습니다. 더 많은 파티션이 필요하면 언제든지 요청하여 서비스 한도를 늘릴 수 있습니다.

  • 오라클 클라우드 인프라스트럭쳐(OCI) 콘솔을 사용하여 내 테넌시에 대한 서비스 제한을 늘리려면 어떻게 해야 합니까?

    다음 단계에 따라 서비스 한도 증가를 요청할 수 있습니다.

    1. 콘솔의 오른쪽 상단 모서리에서 사용자 메뉴를 열고 테넌시: <tenancy_name> 를 누릅니다.

      Big Data Streaming FAQ 9
    2. 서비스 한도을 누른 다음 서비스 한도 증가 요청을 누릅니다.

      Big Data Streaming FAQ 10
    3. 양식을 작성하고 서비스 범주에 대해 기타를 선택하고 리소스에 대해 기타 제한을 선택합니다. 요청 사유에서 테넌시의 Streaming 서비스에 대한 파티션 수 증가를 요청하세요.
  • 최적의 스트림 관리 방법은 무엇입니까?

    다음은 스트림 생성 시 염두에 두어야 할 몇 가지 모범 사례입니다.

    • 스트림 이름은 스트림 풀 내에서 고유해야 합니다. 즉, 서로 다른 스트림 풀에 있는 경우에만 동일한 구획에 동일한 이름을 가진 두 개의 스트림을 생성할 수 있습니다.
    • 스트림이 생성된 후에는 해당 스트림의 파티션 수를 변경할 수 없습니다. 따라서 최대 처리량보다 약간 더 많은 파티션을 할당하는 것이 좋습니다. 이를 통해 애플리케이션 급증을 관리할 수 있습니다.
    • 스트림이 생성된 후에는 스트림 보존 기간을 변경할 수 없습니다. 기본적으로 데이터는 24시간 동안 스트림에 저장됩니다. 단, 24시간~168시간 동안 데이터를 보존하도록 구성할 수 있습니다. 스트림에 저장된 데이터의 양은 스트림 성능에 영향을 주지 않습니다.

    Oracle Cloud Infrastructure Stream에 메시지 생성

  • 스트림에 메시지를 생성하려면 어떻게 합니까?

    스트림이 생성되고 '활성' 상태가 되면 메시지 생성을 시작할 수 있습니다. 콘솔을 사용하거나 API를 통해 스트림을 생성할 수 있습니다.

    콘솔의 경우: 솔루션 및 플랫폼 > 분석 탭 아래에 있는 콘솔의 스트리밍 서비스 섹션으로 이동합니다. 이미 생성된 스트림이 있는 경우 구획에서 스트림을 선택하고 '스트림 세부 정보' 페이지로 이동합니다. 콘솔에서 '테스트 메시지 생성' 버튼을 클릭합니다. 이렇게 하면 메시지에 파티션 키가 임의로 할당되고 스트림의 파티션에 기록됩니다. 생성된 메시지는 최근 메시지 섹션에서 메시지 로드 버튼을 클릭하여 확인할 수 있습니다.

    API의 경우: Oracle Cloud Infrastructure Streaming API 또는 Kafka API를 사용하여 스트림에 메시지를 생성할 수 있습니다. 메시지는 스트림의 파티션에 게시됩니다. 파티션이 두 개 이상인 경우 메시지를 보낼 파티션을 선택하는 키를 지정해야 합니다. 키를 지정하지 않으면 Streaming이 UUID를 생성하여 사용자 대신 키를 할당하고 메시지를 임의 파티션으로 보냅니다. 이렇게 하면 키가 없는 메시지가 모든 파티션에 고르게 배포됩니다. 그러나 데이터 분할 전략을 명시적으로 제어할 수 있도록 항상 메시지 키를 지정하는 것이 좋습니다.

    스트리밍 SDK를 사용하여 스트림에 메시지를 생성하는 방법에 대한 예는 설명서를 참조하세요.

  • 제작자가 사용할 파티션을 어떻게 알 수 있습니까?

    Oracle Cloud Infrastructure API를 사용하여 메시지를 생성하는 동안 스트리밍에 의해 분할 논리가 제어됩니다. 이를 서버 측 분할이라고 합니다. 사용자는 키에 기반하여 보낼 파티션을 선택합니다. 키는 해시되고 결과 값은 메시지를 보낼 파티션 번호를 결정하는 데 사용됩니다. 동일한 키를 가진 메시지는 동일한 파티션으로 이동합니다. 키가 다른 메시지는 다른 파티션 또는 동일한 파티션으로 이동할 수 있습니다.

    단, Kafka API를 사용하여 스트림을 생성하는 경우 분할은 Kafka 클라이언트에서 제어하고 Kafka 클라이언트의 파티셔너는 논리 분할을 담당합니다. 이를 클라이언트 측 분할이라고 합니다.

  • 유효한 파티션 키를 생성하려면 어떻게 해야 합니까?

    메시지를 균일하게 분할하려면 효과적인 메시지 키 값이 필요합니다. 키 값을 생성하려면 스트리밍 데이터의 선택성과 카디널리티(Cardinality)를 고려해야 합니다.

    • 카디널리티: 특정 사용 사례에 따라 잠재적으로 생성될 수 있는 총 고유 키 수를 고려합니다. 일반적으로 키 카디널리티가 많을수록 분할이 효율적으로 이루어집니다.
    • 선택성: 각 키의 메시지 수를 고려합니다. 선택성이 높으면 키당 더 많은 메시지가 표시되므로 핫스팟이 발생할 수 있습니다.

    항상 카디널리티는 많게, 선택성은 적게 하는 것을 목표로 하세요.

  • 메시지가 생성된 순서대로 소비자에게 전달되도록 하려면 어떻게 해야 합니까?

    Streaming은 파티션 내에서 선형화 가능한 읽기 및 쓰기가 가능하도록 해줍니다. 같은 값을 가진 메시지를 동일한 파티션으로 이동시키려면 해당 메시지에 동일한 키를 사용해야 합니다.

  • 메시지 크기는 내 스트림의 처리량에 어떤 영향을 미칠 수 있습니까?

    파티션은 1MB/초의 데이터 입력 속도를 제공하고 초당 최대 1000개의 PUT 메시지를 지원합니다. 따라서 레코드 크기가 1KB 미만인 경우 파티션의 실제 데이터 입력 속도는 초당 최대 PUT 메시지 수에 의해 제한되는 1MB/초 미만이 됩니다. 메시지를 일괄적으로 생성하는 것이 좋은데, 그 이유는 다음과 같습니다.

    • 서비스로 전송되는 PUT 요청 수를 줄여 제한을 방지할 수 있습니다.
    • 처리량을 향상시킬 수 있습니다.

    일괄 처리되는 메시지의 크기는 1MB를 초과하지 않아야 합니다. 이 한도를 초과하면 트래픽 조절 메커니즘이 개시됩니다.

  • 1MB보다 큰 메시지는 어떻게 처리합니까?

    조각화 기능을 사용하거나 Oracle Cloud Infrastructure Object Storage를 사용하여 메시지를 보낼 수 있습니다.

    • 조각화(Chunking): 대규모 페이로드를 Streaming에서 수용할 수 있는 여러 개의 작은 조각으로 분할할 수 있습니다. 데이터 조각은 조각화되지 않은 일반 메시지가 저장되는 것과 동일한 방식으로 서비스에 저장됩니다. 유일한 차이점은 소비자가 데이터 조각을 보관하고 모든 조각을 수집했을 때 이를 메시지로 결합해야 한다는 것입니다. 파티션 내의 조각은 일반 메시지와 함께 사용할 수 있습니다.
    • 오브젝트 스토리지: 대규모 페이로드는 Object Storage에 배치되고 해당 데이터에 대한 포인터만 전송됩니다. 수신기는 이러한 유형의 포인터 페이로드를 인식하고 Object Storage에서 데이터를 정확하게 읽어 최종 사용자에게 제공합니다.
  • 파티션에서 허용하는 것보다 더 빠른 속도로 생성하면 어떻게 됩니까?

    생산자가 초당 1MB 이상의 속도로 데이터를 생성할 경우 요청이 제한되며, 과도한 파티션별 초당 요청이 수신되고 있음을 나타내는 429, 너무 많은 요청 오류가 클라이언트로 다시 전송됩니다.

    Oracle Cloud Infrastructure Stream에서 메시지 소비

  • 스트림에서 데이터를 어떻게 읽을 수 있습니까?

    소비자는 하나 이상의 스트림에서 메시지를 읽는 엔터티입니다. 이 엔터티는 단독으로 존재할 수도 있고 소비자 그룹의 일부로 포함되어 있을 수도 있습니다. 메시지를 소비하려면 커서를 생성한 다음 해당 커서를 사용하여 메시지를 읽어야 합니다. 커서는 스트림의 위치를 가리킵니다. 이 위치는 파티션 또는 그룹의 현재 위치에서 특정 오프셋 또는 시간일 수 있습니다. 읽을 위치에 따라 TRIM_HORIZON, AT_OFFSET, AFTER_OFFSET, AT_TIME, LATEST. 등의 다양한 커서 유형을 사용할 수 있습니다.

    메시지 소비에 대한 자세한 내용은 설명서를 참조하세요.

  • 특정 시점에 스트림에서 사용할 수 있는 최대 메시지 수는 몇 개입니까?

    GetMessageRequest 클래스의 getLimit() 메서드는 최대 메시지 수를 반환하며, 최대 10,000개의 값을 지정할 수 있습니다. 서비스에서는 기본적으로 최대한 많은 메시지를 반환합니다. 스트림에서 처리량을 초과하지 않도록 평균 메시지 크기를 고려해야 합니다. Streaming getMessage 배치 크기는 특정 스트림에 생성된 평균 메시지 크기를 기반으로 합니다.

  • 소비자에게 메시지가 중복되지 않도록 하려면 어떻게 해야 합니까?

    Streaming은 소비자에게 '최소 1회'의 시맨틱을 제공합니다. 소비자 애플리케이션에서 중복 작업을 처리하는 것이 좋습니다. 예를 들어, 이전에 비활성 상태였던 소비자 그룹의 인스턴스가 그룹에 다시 참여하고 이전에 할당된 인스턴스에서 커밋되지 않은 메시지를 사용하기 시작하면 중복을 처리할 가능성이 있습니다.

  • 소비자가 뒤쳐지고 있는지 어떻게 알 수 있습니까?

    소비자가 소비할 수 있는 것보다 더 빨리 메시지가 생성되는 경우 경우 소비자가 뒤처지고 있다고 합니다. 소비자가 뒤처지고 있는지 확인하려면 메시지의 타임스탬프를 사용하면 됩니다. 소비자가 뒤처지고 있다면 새 소비자를 생성하여 첫 번째 소비자로부터 파티션 일부를 인계하는 것을 고려하세요. 다만, 단일 파티션에서 뒤처지고 있는 경우에는 복구할 방법이 없습니다.

    다음 옵션을 고려하세요.

    • 스트림에서 파티션 수를 늘립니다.
    • 핫스팟으로 인해 문제가 발생한 경우 메시지 키 전략을 변경합니다.
    • 메시지 처리 시간을 줄이거나 요청을 동시에 처리합니다.

    지정된 파티션에서 소비되어야 할 메시지 수를 확인하려면 LATEST 커서 유형을 사용하여 다음에 게시한 메시지의 오프셋을 가져오고 현재 사용 중인 오프셋을 사용하여 델타를 만듭니다. 조밀한 오프셋이 없으므로 대략적인 추정치만 얻을 수 있습니다. 그러나 생산자가 생성을 중단하면 다음에 게시된 메시지의 오프셋을 얻을 수 없으므로 이러한 정보를 얻을 수 없습니다.

  • 소비자 그룹은 어떻게 작동합니까?

    소비자들이 그룹의 일부로 메시지를 사용하도록 구성할 수 있습니다. 스트림 파티션은 그룹의 구성원 간에 배포되므로 단일 파티션의 메시지는 단일 소비자에게만 전송됩니다. 파티션 할당은 소비자가 그룹에 참여하거나 탈퇴 시 재조정됩니다. 소비자 그룹에 대한 자세한 내용은 설명서를 참조하세요.

  • 소비자 그룹을 사용해야 하는 이유는 무엇입니까?

    소비자 그룹은 다음과 같은 장점을 제공합니다.

    • 소비자 그룹의 각 인스턴스는 '자동' 할당된' 하나 이상의 파티션에서 메시지를 수신하며 다른 파티션에 할당된 다른 인스턴스가 동일한 메시지를 수신하지 않습니다. 이를 통해 한 인스턴스가 하나의 파티션만 읽도록 함으로써 인스턴스 수를 파티션 수까지 확장할 수 있습니다. 이 경우 그룹에 참여하는 새 인스턴스는 파티션에 할당되지 않고 파티션 유휴 상태에 있습니다.
    • 인스턴스가 다른 소비자 그룹의 일부로 있다는 것은 분할 영역의 메시지가 다른 그룹의 모든 인스턴스로 전송되는 게시-구독 패턴을 제공하는 것을 의미합니다.
      동일한 소비자 그룹 내에서의 규칙은 다음 이미지와 같습니다.
      Big Data Streaming FAQ 11

      인스턴스는 여러 그룹에 걸쳐 다음 이미지와 같이 동일한 메시지를 수신합니다.
      Big Data Streaming FAQ 12
      이러한 기능은 분할 영역 내의 메시지가 서로 다른 방식으로 처리될 예정인 서로 다른 응용 프로그램에 관심이 있는 경우에 유용합니다. 모든 관련 어플리케이션이 파티션에서 동일한 메시지를 수신하는 것이 목표입니다.
    • 인스턴스가 그룹에 참여할 때 사용 가능한 파티션(제한 기준인 파티션당 인스턴스 1개에 도달하지 못한 경우)이 충분하면 재조정이 시작됩니다. 파티션은 현재의 인스턴스와 새로운 인스턴스에 재할당됩니다. 이와 마찬가지로, 인스턴스가 그룹을 떠나는 경우에도 파티션이 나머지 인스턴스에 재할당됩니다.
    • 오프셋 커밋은 자동으로 관리됩니다.
  • 스트림당 보유할 수 있는 소비자 그룹 수에 제한이 있습니까?

    스트림당 소비자 그룹은 50개로 제한됩니다. 소비자 그룹은 일시적인 것으로 스트림 보존 기간 동안 사용하지 않으면 사라집니다.

  • 소비자 및 소비자 그룹을 사용하는 동안 알아야 할 제한 시간은 무엇입니까?

    Streaming의 다음 구성 요소에는 시간 제한이 있습니다.

    • 커서: 메시지를 계속 사용하는 한 커서를 만들지 않아도 됩니다. 메시지 사용이 5분 이상 중지된 경우 커서를 다시 만들어야 합니다.
    • 인스턴스: 인스턴스가 30초 이상 메시지 소비를 중단할 경우 소비자 그룹에서 제거되고 해당 파티션은 다른 인스턴스에 다시 할당됩니다. 이를 재조정이라고 합니다.
  • 소비자 그룹 내에서 재조정이란 무엇입니까?

    재조정이란 동일한 소비자 그룹에 속한 인스턴스 그룹이 특정 스트림에 속하는 상호 배타적인 파티션 집합을 소유하도록 조정하는 프로세스입니다. 소비자 그룹에 대한 재조정 작업이 성공적으로 끝나면 스트림 내의 모든 파티션이 그룹 내의 하나 이상의 소비자 인스턴스에 의해 소유됩니다.

  • 소비자 그룹 내에서 재조정 활동을 트리거하는 것은 무엇입니까?

    소비자 그룹의 인스턴스가 30초 이상 Heartbeat를 전송하지 못하거나 프로세스가 종료되어 비활성화되면 소비자 그룹 내에서 재조정 활동이 트리거됩니다. 이는 이전에 비활성 인스턴스에서 사용된 파티션을 처리하고 활성 인스턴스에 재할당하기 위한 것입니다. 마찬가지로 이전에 비활성 상태였던 소비자 그룹의 인스턴스가 그룹에 참여하면 사용할 시작할 파티션을 할당하기 위해 재조정이 트리거됩니다. Streaming 서비스는 그룹에 다시 참여할 때 인스턴스를 동일한 파티션에 재할당하는 것을 보장하지 않습니다.

  • 소비자 장애를 어떻게 복구합니까?

    장애를 복구하려면 각 파티션에 대해 마지막으로 처리한 메시지의 오프셋을 저장하여, 소비자를 재시작해야 하는 경우 해당 메시지에서 소비를 시작하도록 해야 합니다.


    참고: 커서는 5분 후에 만료되므로 저장하지 마세요.


    마지막으로 처리한 메시지의 오프셋을 저장하는 지침은 제공하지 않으므로 원하는 방법을 사용할 수 있습니다. 예를 들어, 커서를 다른 스트림, VM의 파일 또는 Object Storage 버킷에 저장할 수 있습니다. 소비자가 다시 시작되면 마지막으로 처리한 메시지의 오프셋을 읽은 다음 AFTER_OFFSET 유형 커서를 만들고 방금 받은 오프셋을 지정합니다.

    Oracle Cloud Infrastructure Streaming에 대한 Kafka 호환성

  • 기존 Kafka 애플리케이션을 스트리밍과 어떻게 통합합니까?

    Streaming 서비스는 기존 Apache Kafka 기반 애플리케이션에서 사용할 수 있는 Kafka 엔드포인트를 제공합니다. 완전 관리형 Kafka 환경을 만들려면 구성만 변경하면 됩니다. Streaming의 Kafka 호환성은 자체 Kafka 클러스터 실행에 대한 대안을 제공합니다. Streaming은 Apache Kafka 1.0 이상 클라이언트 버전을 지원하며 기존 Kafka 애플리케이션, 도구 및 프레임워크에서 작동합니다.

  • 기존 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 Connect를 어떻게 사용하나요?

    Streaming에서 Kafka 커넥터를 사용하려면 콘솔 또는 명령줄 인터페이스(CLI)를 사용하여 Kafka Connect 구성을 생성합니다. Streaming API는 이러한 구성 하네스를 호출합니다. 지정된 구획에서 생성된 Kafka Connect 구성은 동일한 구획의 스트림에 대해서만 작동합니다. 동일한 Kafka Connect 구성으로 여러 Kafka 커넥터를 사용할 수 있습니다. 별도의 구획에서 스트림을 생성하거나 사용해야 하는 경우나 Kafka Connect 구성에서 스로틀 한도에 도달하지 않도록 더 많은 용량이 필요한 경우(예: 커넥터가 너무 많거나 커넥터에 너무 많은 작업자가 있는 경우) Kafka 커넥터 구성을 더 생성할 수 있습니다.

  • 스트리밍이 제공하는 자사 및 타사 제품과의 통합은 무엇입니까?

    Streaming의 Kafka Connect 호환성은 기존의 많은 자사 및 타사 커넥터를 활용하여 데이터를 소스에서 대상으로 이동할 수 있음을 의미합니다. Oracle 제품용 Kafka 커넥터는 다음과 같습니다.

    타사 Kafka 소스 및 싱크 커넥터의 전체 목록은 공식 Confluent Kafka 허브를 참조하세요.

    Oracle Cloud Infrastructure Streams 모니터링

  • 스트림은 어디에서 모니터링할 수 있습니까?

    Streaming은 Oracle Cloud Infrastructure Monitoring과 완벽하게 통합됩니다. 콘솔에서 모니터링할 스트림을 선택합니다. 스트림 세부 정보 페이지에서 리소스 섹션으로 이동한 다음 생성 모니터링 차트를 클릭하여 제작자 요청을 모니터링합니다. 또는 소비 모니터링 차트를 클릭하여 소비자 측 측정 지표를 모니터링합니다. 측정 지표는 파티션 수준이 아닌 스트림 수준에서 사용할 수 있습니다. 지원되는 Streaming 측정 지표에 대한 설명은 설명서를 참조하세요.

  • 스트리밍 모니터링 시 어떤 통계를 사용할 수 있습니까?

    Console에서 사용 가능한 각 측정 지표는 다음 통계를 제공합니다.

    • 비율, 합계 및 평균
    • 최소, 최대 및 개수
    • P50, P90, P95, P99, P99.9

    이러한 통계는 다음과 같은 간격으로 제공됩니다.

    • 자동
    • 1분
    • 5분
    • 1시간
  • 일반적으로 어떤 측정 지표에 대해 경보를 설정해야 합니까?

    생산자의 경우 다음 측정 지표에 대해 경보를 설정하십시오.

    • 메시지 보내기 대기 시간: 대기 시간이 증가한다는 것을 메시지 게시에 시간이 오래 걸린다는 것으로 네트워크에 문제가 있음을 나타낼 수 있습니다.
    • 메시지 보내기 총 처리량:
      • 총 처리량이 크게 증가하면 파티션당 초당 1MB 한계에 도달하고 해당 이벤트가 트래픽 조절 메커니즘을 개시한다는 것을 나타낼 수 있습니다.
      • 처리량의 큰 감소는 클라이언트 생산자가 문제를 겪고 있거나 중단하려고 한다는 의미일 수 있습니다.
    • 제한된 메시지 보내기 레코드: 메시지가 제한(throttled)될 때 통지를 받는 것이 중요합니다.
    • 메시지 보내기 실패: 메시지입력이 실패할 경우실패 원인 조사를 시작할 수 있도록 Ops 팀에 통지하는 것이 중요합니다.

    소비자의 경우 다음 측정 지표를 기반으로 동일한 경보를 설정합니다.

    • 메시지 가져오기 대기 시간
    • 메시지 가져오기 총 처리량
    • 제한된 메시지 가져오기 요청 수
    • 메시지 가져오기 실패
  • 스트림이 정상인지 어떻게 알 수 있습니까?

    스트림은 활성 상태일 때 정상입니다. 스트림에서 작업을 수행할 수 있고 반응이 성공적이면 스트림이 정상이라고 볼 있습니다. 소비자는 스트림에서 데이터가 생성된 후 구성된 보존 기간 동안 액세스할 수 있습니다. GetMessages API 호출이 높은 수준의 내부 서버 오류를 반환하는 경우 서비스가 정상 상태가 아닌 것으로 판단할 수 있습니다.

    정상 스트림에는 다음과 같은 정상 측정 지표가 있습니다.

    • 메시지 보내기 대기 시간이 짧습니다.
    • 메시지 보내기 총 처리량이 파티션당 1MB/초에 가깝습니다.
    • 제한된 메시지 보내기 요청 수가 0에 가깝습니다.
    • 메시지 보내기 실패 횟수가 0에 가깝습니다.

    • 메시지 가져오기 대기 시간이 짧습니다.
    • 메시지 가져오기 총 처리량이 파티션당 초당 2MB에 가깝습니다.
    • 제한된 메시지 가져오기 요청 수가 0에 가깝습니다.
    • 메시지 가져오기 실패 횟수가 0에 가깝습니다.
  • 언제 스트림에서 메시지가 제한됩니까?

    제한은 스트림이 새로운 읽기 또는 쓰기를 처리할 수 없음을 나타냅니다. 다음 임계 값을 초과하면 제한 메커니즘이 활성화됩니다.

    • 메시지 가져오기: 초당 5회 호출 또는 파티션당 2MB/초
    • 메시지 보내기: 파티션당 1MB/초
    • 관리 및 제어 플레인 작업(CreateCursor, ListStream 등) 스트림당 5회/초 호출
  • API 오류 목록은 어디에서 찾을 수 있습니까?

    API 오류에 대한 자세한 내용은 설명서에서 확인할 수 있습니다.