串流處理常見問題

一般性問題

什麼是 Oracle Cloud Infrastructure Streaming?

Oracle Cloud Infrastructure (OCI) Streaming 提供完全託管、可擴展且持久的訊息傳遞解決方案,用於擷取您可以即時使用和處理的連續大量資料串流。所有支援的 Oracle Cloud Infrastructure 區域都提供串流處理功能。如需清單,請瀏覽區域與可用性網域頁面。

為什麼要使用 Streaming?

Streaming 是一項無伺服器服務,可卸載從網路到儲存的基礎架構管理,以及串流資料所需的組態。您無須擔心基礎架構佈建、持續維護或安全修補。Streaming 服務會跨三個可用性網域同步複製資料,提供高可用性和資料持久性。在具有單一可用性網域的區域中,資料會跨三個容錯網域進行複寫。

如何使用 Streaming?

串流可讓您輕鬆收集、儲存及處理從數百個來源即時產生的資料。使用案例數目幾乎無限制,範圍從訊息傳遞到複雜的資料串流處理。以下是部分 Streaming 的眾多可能用途:

  • 訊息傳遞:使用串流處理讓大型系統的元件脫鉤。產生器和用戶可以使用 Streaming 作為非同步訊息匯流排,並依照自己的步調獨立運作。
  • 度量和日誌擷取:使用「串流處理」作為傳統檔案擷取方法的替代方案,以協助快速將重要作業資料用於編製索引、分析及視覺化。
  • Web 或行動活動資料擷取:使用串流從網站或行動應用程式擷取活動,例如頁面檢視、搜尋或其他使用者動作。您可以使用此資訊進行即時監控和分析,並在資料倉儲系統中用於離線處理和報告。
  • 基礎架構和應用程式事件處理:使用「串流處理」作為統一進入點,以供雲端元件報告其生命週期事件,以進行稽核、會計及相關活動。

如何開始使用 Streaming?

您可以開始使用 Streaming,如下所示:

  1. 使用 Oracle Cloud Infrastructure 主控台CreateStream API 作業建立串流。
  2. 設定產生器以將訊息發布至串流。請參閱發佈訊息
  3. 建立消費者以讀取和處理來自串流的資料。請參閱使用訊息

您也可以使用 Kafka API 產生及使用串流。如需詳細資訊,請參閱 Using Streaming with Apache Kafka

Streaming 的服務有哪些限制?

Streaming 的輸送量旨在透過將分割區加入到串流來擴展而不受限制。然而,使用 Streaming 時必須注意某些限制:

  • 串流中訊息的保留期間上限為 7 天。
  • 可對串流產生之唯一訊息的大小上限為 1 MB。
  • 每個分割區最多可以處理每秒 1 MB 的傳輸量,以及任意數目的寫入要求。
  • 每個分割區最多可支援每秒 1 MB 的總資料寫入速率和每秒 2 MB 的讀取速率。

Streaming 與佇列型服務相比如何?

串流提供以串流為基礎的語意。串流語意可為每個分割區提供嚴格的排序保證、訊息重新執行性、從屬端游標,以及大量的水平傳輸量。佇列不提供這些功能。如果使用 FIFO 佇列,可以設計佇列來提供排序保證,但僅以在效能中增加顯著負荷的成本。

關鍵概念

什麼是串流?

串流是訊息的分割、僅附加記錄,產生器應用程式會將資料寫入消費者應用程式讀取資料的目標與來源。

什麼是串流集區?

串流集區是可用來組織和管理串流的群組。串流集區提供跨多個串流共用組態設定值的功能,讓作業更容易。例如,使用者可以共用安全設定值 (例如串流集區上的自訂加密金鑰),以加密集區內所有串流的資料。串流集區也可讓您透過限制對串流集區內所有串流的網際網路存取,建立串流的專用端點。對於使用 Streaming 之 Kafka 相容性功能的客戶,串流集區可作為虛擬 Kafka 叢集的根目錄,因此能夠將該虛擬叢集上的每個動作範圍設定至該串流集區。

什麼是分割區?

分割區是基準傳輸量單位,可啟用串流生產和消耗的水平調整和平行程度。分割區提供每秒 1 MB 的容量資料輸入和每秒 2 MB 的資料輸出。建立串流時,請根據應用程式的傳輸量需求,指定所需的分割區數目。例如,您可以建立包含 10 個分割區的串流,在此情況下,您可以實現 10 MB/ 秒輸入的傳輸量,以及來自串流的 20 MB/ 秒輸出。

什麼是訊息?

訊息是儲存在串流中的 base64 編碼資料單位。您可以對串流中分割區產生的訊息大小上限為 1 MB。

什麼是金鑰?

金鑰是用於對相關訊息進行分組的識別碼。具有相同索引鍵的訊息會寫入相同的分割區。串流可確保指定分割區的任何用戶一律讀取該分割區的訊息,順序與寫入的順序完全相同。

什麼是製作者?

產生器是可以將訊息寫入串流的從屬端應用程式。

什麼是用戶與用戶群組?

用戶是可以從一或多個串流讀取訊息的從屬端應用程式。用戶群組是一組協調串流中所有分割區之訊息的執行處理。在任何指定的時間,特定分割區的訊息只能由群組中的單一用戶使用。

什麼是游標?

游標是指向串流中某個位置的指標。該位置可以是指向分割區中特定位移或時間,或群組目前位置的指標。

什麼是差異?

分割區中的每則訊息都具有識別碼,稱為沖銷。使用者可以從一個特定的位移開始讀取訊息,亦可以從他們選擇的任何位移點進行讀取。使用者還可以提交最新處理的位移,以便在停止工作,然後重新啟動時,可以接續工作,不會重播或遺失訊息。

安全性

使用 Oracle Cloud Infrastructure Streaming 時,資料有多安全?

串流預設會在靜態和傳輸中提供資料加密。串流與 Oracle Cloud Infrastructure Identity and Access Management (IAM) 完全整合,可讓您使用存取原則選擇性地將權限授予使用者和使用者群組。使用 REST API 時,您也可以使用 HTTPS 通訊協定,安全地 PUT 並從 Streaming 到 SSL 端點取得資料。此外,串流提供完整的租戶層級資料隔離,沒有任何「資源壟斷」問題。

是否可以使用自己的一組主要金鑰來加密串流中的資料?

串流資料會在靜態和傳輸中加密,並確保訊息完整性。如果需要符合特定的規範或安全標準,您可以讓 Oracle 管理加密,或使用 Oracle Cloud Infrastructure Vault 安全地儲存和管理您自己的加密金鑰。

建立串流集區後,可以編輯哪些安全設定值?

如果您想要切換使用「Oracle 金鑰提供的加密」和「使用客戶管理的金鑰管理的加密」,您可以隨時編輯串流集區的資料加密設定值。「串流處理」不會對此活動執行次數有任何限制。

如何管理和控制對串流的存取?

串流與 Oracle Cloud Infrastructure IAM 完全整合。每個串流皆指派一個區間。使用者可以指定以角色為基礎的存取控制原則,此原則可用來描述租用戶、區間或單一串流層次的微點規則。

存取策略的指定格式為 <location> 中 <conditions> 的允許 <subject> 到 <verb> <resource-type>。

Kafka 使用者必須搭配 Streaming 使用哪些認證機制?

使用 Kafka 協定的認證會使用認證記號和 SASL/PLAIN 機制。您可以在主控台使用者詳細資訊頁面上產生記號。請參閱使用認證權杖以瞭解詳細資訊。建議您建立專用群組 / 使用者,並將管理適當區間或租用戶串流的權限授予該群組。接著,您可以為建立的使用者產生認證權杖,並在 Kafka 從屬端組態中使用該權杖。

是否可以在不使用公用 IP 的情況下,從虛擬雲端網路 (VCN) 以私人方式存取串流 API?

專用端點限制對租用戶內指定虛擬雲端網路 (VCN) 的存取,以便無法透過網際網路存取其串流。專用端點會將 VCN 中的專用 IP 位址與串流集區建立關聯,讓串流流量能夠避免周遊網際網路。若要建立串流的專用端點,建立串流集區時,您需要使用專用子網路存取 VCN。如需詳細資訊,請參閱關於專用端點VCN 和子網路

整合

如何將 Oracle Cloud Infrastructure Streaming 與 Oracle Cloud Infrastructure Object Storage 搭配使用?

您可以將串流內容直接寫入物件儲存的儲存桶,通常會將資料保存在串流中以進行長期儲存。使用 Kafka Connect for S3 和 Streaming 可以達到此目的。如需詳細資訊,請參閱從 Oracle Streaming Service 發佈到物件儲存部落格文章。

如何將 Streaming 與 Oracle Autonomous Database 搭配使用?

您可以從 Oracle Autonomous Transaction Processing 執行處理中的表格擷取資料。如需詳細資訊,請參閱 Using Kafka Connect With Oracle Streaming Service and Autonomous DB 部落格文章。

如何搭配 Micronaut 使用 Streaming?

您可以使用 Kafka SDK 產生及使用來自 Streaming 的訊息,也可以使用 Micronaut 的內建 Kafka 支援。如需詳細資訊,請參閱 Easy Messaging With Micronaut 的 Kafka Support and Oracle Streaming Service 部落格文章。

如何使用 Streaming 從 MQTT 中介擷取 IoT 資料?

如需相關資訊,請參閱從 MQTT 中介將 IoT 資料擷取至 OCI-Oracle Streaming Service、OCI- Kafka Connect Harness 和 Oracle Kubernetes Engine 部落格文章。

Oracle GoldenGate for Big Data 是否與 Streaming 相容?

Oracle GoldenGate for Big Data 現已通過與 Streaming 整合的認證。如需詳細資訊,請參閱 Oracle GoldenGate for Big Data 文件中的連線至 Oracle Streaming Service

是否有方法可以直接從串流將資料擷取至 Oracle Autonomous Data Warehouse?

您需要使用 Kafka JDBC Sink Connect,將串流資料直接傳輸至 Oracle Autonomous Data Warehouse。

定價

使用 Oracle Cloud Infrastructure Streaming 如何收費?

Streaming 使用簡單的隨用隨付定價,確保您只需依據使用的資源付費。訂價維度包含

  • GET/PUT 要求費用:已傳輸的 GB 資料
  • 儲存價格 (根據使用的保留期間時數):每小時的儲存 GB

如需最新的定價資訊,請參閱 OCI Streaming 頁面

即使我不使用這項服務,還是需要支付佈建費用?

Streaming 領先業界的定價模式可確保您僅在預設服務限制內使用服務時支付費用。

將資料移入和移出 Streaming 是否需要額外付費?

串流不收取將資料移入和移出服務的額外費用。此外,使用者可以利用 Service Connector Hub 的強大功能,以無伺服器方式將資料移入或移出 Streaming,無須額外付費。

串流是否有免費層?

串流目前無法在免費層運作。

管理 Oracle Cloud Infrastructure 串流

存取 Streaming 需要哪些 IAM 權限?

身分識別與存取管理可讓您控制可存取雲端資源的人員。若要使用 Oracle Cloud Infrastructure 資源,您必須取得管理員所撰寫原則的必要存取類型,無論您是使用主控台或 REST API 搭配 SDK、CLI 或其他工具。指定存取原則的形式如下:


Allow <subject> to <verb> <resource-type> in <location> where <conditions>

租用戶的管理員可以使用原則


Allow group StreamAdmins to manage streams in tenancy

這可讓指定的群組 StreamAdmins 透過從建立、更新、列出及刪除串流及其相關資源等串流進行所有工作。不過,您可以一律指定更精細的原則,讓只有選取群組中的使用者才符合在指定串流上執行之活動的子集。如果您不熟悉原則,請參閱原則入門通用原則。如果您想要深入探索撰寫 Streaming 原則,請參閱 IAM 原則參照中的串流服務詳細資訊

如何自動大規模部署串流?

您可以使用 Oracle Cloud infrastructure Resource ManagerOracle Cloud Infrastructure 的 Terraform 提供者,佈建串流及其所有相關元件,例如 IAM 原則、分割區、加密設定值等。如需有關 Terraform 提供者的資訊,請參閱 串流服務的 Terraform 主題

我如何確定所需的分割區數量?

建立串流時,您必須指定串流具有多少分割區。應用程式的預期傳輸量可協助您判斷串流的分割區數目。將平均訊息大小乘以每秒寫入的訊息數目上限,以預估預期的傳輸量。由於單一分割區每秒的寫入速率限制為 1 MB,因此較高的傳輸量需要額外的分割區來避免節流。為了協助您管理應用程式激增,建議您配置的分割區略高於傳輸量上限。

如何在串流中建立及刪除分割區?

您可以在主控台上建立串流或以程式設計方式建立分割區。

主控台 UI:

大數據串流常見問題 8

程式化:

建立串流

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

隨附 SDK 提供了更詳細的範例。

「串流處理」會在內部管理分割區,因此您不需要進行管理。使用者無法直接刪除分割區。刪除串流時,會刪除與該串流關聯的所有分割區。

可以請求的串流最小輸送量是多少?

Oracle Cloud Infrastructure 串流的傳輸量由分割區定義。分割區每秒提供 1 MB 的資料輸入,每秒提供 2 MB 的資料輸出。

可以要求的串流最大傳輸量是多少?

Oracle Cloud Infrastructure 串流的傳輸量可以透過在其中新增更多分割區來縱向擴展。串流可以保留的分割區數目沒有理論上的上限。不過,每個 Oracle Cloud Infrastructure 租用戶的通用點數類型帳戶預設分割區限制為 5。如果您需要更多分割區,您可以隨時要求提高服務限制

如何使用 Oracle Cloud Infrastructure 主控台提高租用戶的服務限額?

您可以依照下列步驟要求提高服務限制:

  1. 在主控台的右上角,開啟使用者功能表,然後按一下租用戶:<tenancy_name>

    大數據串流常見問題 9
  2. 按一下服務限制,然後按一下要求提高服務限制

    大數據串流常見問題 10
  3. 請填寫表單,為服務類目選取其他,為資源選取其他限制。在要求原因中,要求增加您租用戶中 Streaming 服務的分割區數目。

管理串流的最佳實務有哪些?

建立串流時,請記住以下幾個最佳做法:

  • 串流名稱在串流集區中必須是唯一的。這表示只有在兩個串流位於不同的串流集區上時,才能在同一個區間中建立具有相同名稱的兩個串流。
  • 建立串流之後,您就無法變更其中的分割區數目。建議配置的分割區略高於傳輸量上限。這可協助您管理應用程式激增。
  • 串流建立後便無法變更其保留期間。依照預設,資料會儲存在串流中 24 小時。不過,您可以將其設定為在 24 到 168 小時之間保留資料。儲存在串流中的資料量不會影響串流的效能。

產生 Oracle Cloud Infrastructure Stream 訊息

如何產生串流的訊息?

建立串流並處於「作用中」狀態之後,您就可以開始產生訊息。您可以使用主控台或透過 API 產生至串流。

若為主控台:移至主控台的「串流處理」服務區段,位於解決方案與平台 > 分析頁籤底下。如果您已經建立串流,請選取區間中的串流,然後瀏覽至「串流詳細資訊」頁面。按一下主控台上的「產生測試訊息」按鈕。這將會隨機指派分割區索引鍵給訊息,並寫入串流中的分割區。您可以按一下載入訊息按鈕,在最近的訊息段落中檢視此訊息。

API :您可以使用 Oracle Cloud Infrastructure Streaming API 或 Kafka API 產生串流。訊息將發布到串流中的分割區。如果有多個分割區,您可以指定一個索引鍵來選擇要將訊息傳送到哪個分割區,如果未指定索引鍵,則 Streaming 會產生 UUID 並將訊息傳送給隨機分割區,為您指派一個分割區。這樣可確保沒有索引鍵的訊息平均分配到所有分割區。不過,建議您一律指定訊息索引鍵,以便明確控制資料的分割策略。

有關如何使用 Streaming SDK 對串流產生訊息的範例,請參閱說明文件

如何知道產生器將使用哪個分割區?

在使用 Oracle Cloud Infrastructure API 產生訊息時,分割邏輯是由 Streaming 控制。這稱為伺服器端分割。身為使用者,您可以根據索引鍵選擇要傳送的分割區。索引鍵為雜湊值,而結果值則用來決定要傳送訊息的分割區編號。具有相同索引鍵的訊息將進入同一個分割區。具有不同金鑰的訊息可能會傳到不同分割區或同一個分割區。

不過,如果您使用 Kafka API 產生串流,則分割是由 Kafka 從屬端所控制,Kafka 從屬端中的分割器則負責分割邏輯。這稱為從屬端分割。

如何建立有效的分割區索引鍵?

為了確保訊息的分佈均勻,您需要有效的訊息關鍵碼值。如果要建立串流資料,請考量串流資料的選擇性和基數。

  • 基數:請考量可以根據特定使用情境建立的唯一索引鍵的總數。較高的索引鍵基數通常意味著更好的分配。
  • 選擇性:請考量每個索引鍵的訊息數量。較高的選擇性意味著每個索引鍵有更多訊息,這可能會導致熱點。

始終致力於實現高基數和低選擇性。

如何確保訊息以其產生的相同順序傳遞給用戶?

串流處理可保證分割區內的可線性化讀取和寫入。如果要確保具有相同值的訊息進入相同的分割區,則應對這些訊息使用相同的索引鍵。

訊息大小如何影響串流的傳輸量?

分割區提供每秒 1MB 的資料輸入速率,並支援每秒最多 1000 個 PUT 訊息。因此,如果記錄大小小於 1KB,分割區的實際資料輸入速率將會小於每秒 1MB,受每秒 PUT 訊息數目上限的限制。建議您批次產生訊息的原因如下:

  • 它可以減少發送到服務的置放請求數量,以避免節流。
  • 它可以實現更好的輸送量。

一批訊息的大小不應超過 1 MB。如果超出此限制,則會觸發節流機制。

如何處理大於 1 MB 的訊息?

您可以使用區塊功能,或使用 Oracle Cloud Infrastructure Object Storage 傳送訊息。

  • 區塊化:您可以將大型有效負載分割成串流處理可以接受的多個較小區塊。區塊的儲存方式與一般、非區塊訊息的儲存方式相同。唯一的區別是,使用者必須保留這些區塊,並在收集完所有區塊後將它們組合為訊息。分割區中的區塊可以與普通訊息互換。
  • 物件儲存:大型有效負載會放置在物件儲存中,且只會傳輸指向該資料的指標。接收器識別出這種類型的指標裝載內容,以透明的方式從物件儲存中讀取資料,並將其提供給終端使用者。

如果我產生的速率大於分割區允許的速率,會發生什麼情況?

當產生器以每秒大於 1MB 的速率產生時,會調節要求,並將 429,太多要求錯誤傳回從屬端,指示每一分割區每秒收到太多要求。

使用來自 Oracle Cloud Infrastructure Stream 的訊息

如何從串流中讀取資料?

用戶是從一個或多個串流中讀取訊息的實體。該實體可以單獨存在,也可以屬於某個使用者群組。若要使用訊息,您必須建立游標,然後使用該游標讀取訊息。游標指向串流中的位置。此位置可以是分割區或群組目前位置中的特定位移或時間。視您要讀取的位置而定,有各種可用的游標類型:TRIM_HORIZONAT_OFFSETAFTER_OFFSETAT_TIMELATEST.

如需詳細資訊,請參閱使用訊息上的文件。

在任何指定時間點,可以從串流使用的訊息數目上限為何?

GetMessagesRequest 類別的 getLimit () 方法會傳回訊息數目上限。您最多可以指定 10,000 則訊息。依預設,此服務會傳回盡可能多的訊息。請考量您的平均訊息大小,以避免超出串流的輸送量。串流 GetMessages 批次大小是以對特定串流產生的平均訊息大小為基礎。

如何避免向使用者發送重複訊息?

「串流處理」為消費者提供「至少一次」的傳遞語意。我們建議您透過使用者應用程式處理重複訊息。例如,當使用者群組先前無效的實例重新加入群組,並開始使用先前指派的實例尚未確認的訊息時,就有機會處理重複項目。

如何知道消費者是否落後?

如果您的生產速度比使用速度快,消費者就會落後。若要判斷您的使用者是否落後,您可以使用訊息的時間戳記。如果使用者落後,請考慮建置一個新使用者來接管第一個使用者的某些分割區。如果在單一分割區上落後,則無法復原。

請考慮下列選項:

  • 增加串流中的分割區數量。
  • 如果問題是由熱點引起,請更改訊息索引鍵策略。
  • 減少訊息處理時間,或同時處理請求。

如果您想知道在指定分割區中還有多少訊息要使用,請使用 LATEST 類型的游標,取得下一個已發布訊息的差異,並以目前使用的差異來計算差異。由於我們沒有密集的偏移量,因此您只能取得粗略的預估值。然而,如果您的製作者停止製作,則您無法取得該資訊,因為您將永遠無法取得下一則已發布訊息的位移。

使用者群組如何運作?

可以將使用者配置為群組的一部分,以便使用訊息。串流分割區會分散至群組的成員,讓來自任何單一分割區的訊息只傳送到單一用戶。當使用者加入或離開群組時,將重新平衡分割區指派。如需詳細資訊,請參閱用戶群組上的文件。

為什麼要使用使用者群組?

使用者群組提供以下優勢:

  • 用戶群組中的每個執行個體會從一個或多個「自動」指派的分割區中接收訊息,而其他執行個體 (指派給不同的分割區) 則不會接收相同的訊息。透過這種方式,只要讓一個執行處理只讀取一個分割區,就可以將執行處理的數目縱向擴展至分割區的數目。在這種情況下,加入該群組的新實例處於閒置狀態,而沒有指派給任何分割區。
  • 將執行處理作為不同用戶群組的一部分,表示提供發布 - 訂閱模式,其中來自分割區的訊息會傳送至跨不同群組的所有執行處理。
    在相同的用戶群組中,規則如下圖所示:
    大數據串流常見問題 11

    在不同的群組中,執行個體會收到相同的訊息,如下圖所示:
    大數據串流常見問題 12
    當分割區內的訊息對不同的應用程式感興趣,而這些應用程式將會以不同的方式處理它們時,這十分有用。我們希望所有感興趣的應用程式從分割區接收所有相同的訊息。
  • 當一個執行個體加入一個群組時,如果有足夠的分割區可用 (即,一個執行個體尚未達到每個分割區的限制),則會開始重新平衡。分割區會重新指派給現有執行個體,外加新的執行個體。同樣地,如果執行個體離開群組,則分割區會重新指派給其餘執行個體。
  • 位移提交是自動管理的。

每個串流可擁有的用戶組數量是否有限制?

每個串流最多可有 50 個用戶群組。用戶群組是暫時性的。它們不會在串流的保留期間使用時消失。

使用用戶和用戶群組時,需要注意哪些逾時?

Streaming 的以下元件具有逾時:

  • 游標:只要您繼續使用訊息,便無需建立游標。如果停止使用訊息超過 5 分鐘,則必須重新建立游標。
  • 執行處理:如果一個執行處理停止使用訊息超過 30 秒,則會從用戶群組中移除,其分割區會重新指派給另一個執行處理。這稱為重新平衡。

使用者群組中的重新平衡是什麼?

重新平衡是一個過程,其中一組屬於相同用戶群組座標的執行處理,以擁有屬於特定串流的一組互斥分割區。使用者群組成功完成重新平衡操作時,串流中的每個分割區均由群組中的一或多個使用者執行個體擁有。

觸發用戶群組內的重新平衡活動是什麼?

當用戶群組的執行處理因為傳送活動訊號超過 30 秒或處理作業終止而變成非作用中時,便會在用戶群組內觸發重新平衡活動。這樣做是為了處理先前由非作用中執行處理使用的分割區,並將它重新指派給作用中執行處理。同樣地,當先前非作用中用戶群組的執行處理結合群組時,會觸發重新平衡以指派分割區來開始使用。Streaming 服務在重新加入群組時,不保證將執行個體重新指派給相同分割區。

如何從使用者故障中復原?

若要從失敗中復原,您必須儲存您為每個分割區處理之上一個訊息的差異,以便在需要重新啟動使用者時可以從該訊息開始使用。


注意:請儲存游標;游標會在 5 分鐘後到期。


我們不會提供任何指引來儲存您處理之最後一則訊息的位移,因此您可以使用任何您需要的方法。例如,您可以將游標儲存在另一個串流、VM 上的檔案或物件儲存的儲存桶。當您的用戶重新啟動時,請閱讀您處理的上一則訊息的差異,然後建立 AFTER_OFFSET 類型的游標,並指定您剛獲得的差異。

Oracle Cloud Infrastructure Streaming 的 Kafka 相容性

如何將現有的 Kafka 應用程式與 Streaming 整合?

Streaming 服務提供 Kafka 端點,可供您現有的 Apache Kafka 型應用程式使用。配置變更全都需要有完全託管的 Kafka 體驗。Streaming 的 Kafka 相容性可讓您替代執行自己的 Kafka 叢集。Streaming 支援 Apache Kafka 1.0 和更新的用戶端版本,並與您現有的 Kafka 應用程式、工具和架構搭配使用。

現有的 Kafka 應用程式需要進行哪些組態變更,才能與 Streaming 互動?

具有現有 Kafka 應用程式的客戶只要變更其 Kafka 組態檔的下列參數,即可移轉至 Streaming。

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]

如何將 Kafka Connect 與串流搭配使用?

若要搭配 Streaming 使用 Kafka 連接器,請使用主控台或命令行介面 (CLI) 建立 Kafka Connect 組態Streaming API 會呼叫這些組態 harnesses 。在指定區間中建立的 Kafka Connect 組態只能用於相同區間中的串流。您可以使用多個具有相同 Kafka Connect 組態的 Kafka 連接器。如果需要在個別區間中產生或使用串流,或需要更多容量以避免發生 Kafka Connect 組態的節流限制 (例如太多連接器或具有太多工作人員的連接器),您可以建立更多的 Kafka Connector 組態。

串流提供哪些與第一方和第三方產品的整合?

Streaming 的 Kafka Connect 相容性表示您可以利用許多現有的第一方和第三方連接器,將資料從您的來源移至目標。Oracle 產品的 Kafka 連接器包括:

如需第三方 Kafka 來源和槽位連接器的完整清單,請參閱 Confluent Kafka 官方中樞

監控 Oracle Cloud Infrastructure 串流

在哪裡可以監控我的串流?

串流與 Oracle Cloud Infrastructure Monitoring 完全整合。在主控台中,選取您要監督的串流。在串流詳細資訊頁面中,瀏覽至資源段落,然後按一下產生監督圖表來監督產生器要求,或按一下使用監督圖表來監督用戶端測量結果。測量結果可以在串流層次使用,而不是在分割區層次使用。如需支援的 Streaming 指標描述,請參閱說明文件

監控串流時提供哪些統計資料?

Console 中可用的每個指標均提供下列統計資料:

  • 費率、總和及平均值
  • 最小、最大和計數
  • P50、P90、P95、P99 和 P99.9

這些統計資料提供的時間間隔如下:

  • 自動
  • 1 分鐘
  • 5 分鐘
  • 1 小時

我通常應該為哪些指標設定警報?

針對製作者,請考慮根據下列指標設定警報:

  • 置放訊息延遲:延遲增加表示訊息的發布時間較長,這可能表示網路問題。
  • Put Messages Total throughput :
    • 總輸送量的重要增加可能表明將達到每個分割區每秒 1 MB 的限制,並且該事件將觸發調節機制。
    • 重大減少可能意味著客戶製作者遇到問題或將要停止。
  • 置放訊息節流記錄:在訊息節流時收到通知很重要。
  • 置放訊息失敗:如果讓訊息開始失敗,請務必收到通知,讓作業團隊可以開始調查原因。

對於使用者,請考慮根據下列指標設定相同的警報:

  • 獲取訊息延遲
  • 取得訊息總傳輸量
  • 獲取訊息節流請求
  • 獲取訊息失敗

如何知道我的串流狀況良好?

當串流處於「作用中」狀態時,串流狀況良好。如果您可以製作自己的串流,並且獲得成功的回應,那麼串流很健康。在串流中產生資料之後,用戶可以在設定的保留期間內存取該資料。如果 GetMessages API 呼叫傳回更高層級的內部伺服器錯誤,則該服務並不健康。

狀況良好的串流也具有正常的指標:

  • 放置訊息延遲低。
  • 放置訊息每個分割區的每秒總輸送量接近 1 MB。
  • 放置訊息節流記錄接近 0。
  • 放置訊息失敗接近 0。

  • 獲得訊息延遲低。
  • 每個分割區的獲得訊息總輸送量為每秒 2 MB。
  • 獲得訊息節流請求接近 0。
  • 獲得訊息失敗接近 0。

訊息何時會在串流中進行節流?

節流指示串流無法處理任何新的讀取或寫入。當您超過以下臨界值時,節流機制便會啟動:

  • GetMessages :每秒 5 次呼叫或每秒 2 MB
  • PutMessages :每個分割區每秒 1 MB
  • 管理和控制層作業,例如 CreateCursor、ListStream 等:每個串流每秒 5 次呼叫

在哪裡可以找到 API 錯誤清單?

有關 API 錯誤的詳細資訊,請參閱說明文件

本頁面是機器翻譯的。