關於 Event Streams 的常見問題
本文件包含 IBM® Event Streams for IBM Cloud® 服務使用者遇到的常見問題或疑難的相關資訊。 本文件旨在回答問題或提供如何解析問題,而無需提交支援問題單的相關指示。
如何使用 Kafka API 建立及刪除主題?
如果您使用 Kafka 用戶端 0.11 或更新版本,或 Kafka Streams 0.10.2.0 或更新版本,可以使用 API 來建立及刪除主題。 我們已對您建立主題時接受的設定做了一些限制。 目前,您只能修改下列設定:
- cleanup.policy
-
設定為
delete
(預設值)、compact
或delete,compact
- retention.ms
-
預設保留期間是 24 小時。 最短 1 小時,最長 30 天。 請以小時的倍數來指定此值。
附註: 在企業方案中,您可以將此設定為任何值。
- retention.bytes
-
在我們捨棄舊日誌區段以釋放空間之前,分割區(由日誌區段所組成)可以成長到的大小上限。
附註: 企業: 設為 100 KiB 與 2 TiB之間的任何值。 標準: 設為 100 KiB 到 1 GiB之間的任何值。
- segment.bytes
-
日誌的區段檔案大小。
附註: 企業: 設為 100 KiB 與 2 TiB之間的任何值。 標準: 設為 100 KiB 到 512 MiB之間的任何值。
- segment.index.bytes
-
將偏移對映至檔案位置的索引大小。
附註: 企業: 設為介於 100 KiB 與 1 TiB之間的任何值。 標準: 設為介於 100 KiB 與 100 MiB之間的任何值。
- segment.ms
-
時段,在此時段之後,Kafka 將強制日誌滾動,即使區段檔案尚未填滿。
附註: 設定為 5 分鐘至 30 天之間的任何值。
請參閱下列預設值設定範例。
Details for topic testit
Topic name Internal? Partition count Replication factor
testit false 1 3
Partition details for topic testit
Partition ID Leader Replicas In-sync
0 1 [1 5 0] [1 5 0]
Configuration parameters for topic testit
Name Value
cleanup.policy delete
min.insync.replicas 2
segment.bytes 536870912
retention.ms 86400000
segment.ms 604800000
retention.bytes 1073741824
segment.index.bytes 10485760
Event Streams 為消費者偏移主題所設定的日誌保留時間範圍有多長?
Event Streams 會保留消費者偏移 7 天。 這對應於 Kafka 配置 offsets.retention.minutes。
偏移保留屬於系統層面,因此您不能在個別主題層次設定。 所有消費者群組只會得到 7 天的儲存偏移,即使是使用已增加到最長 30 天日誌保留的主題。
在企業方案上,內部 Kafka __consumer_offsets
主題以唯讀方式顯示。 強烈建議您不要試圖以任何方式管理主題。 在標準方案上沒有任何辦法可存取 __consumer_offsets
主題。
如何清除沒有消費者的消費者群組?
消費者離開後,僅當群組具有偏移量時,該群組才會繼續存在。 消費者偏移量在處於不活動狀態 7 天後會被刪除。 因此,消費者群組的最後一個確定偏移量到期時,將刪除該群組。
如果要在您選擇的時間明確刪除群組,可以使用 deleteConsumerGroups()API 或 ibmcloud es group-delete 命令。
訊息保留多久?
依預設,訊息在 Kafka 中的保留時間為最長 24 小時,每個分割區的上限為 1 GB。 如果到達 1 GB 的限制,將會捨棄最舊的訊息,以維持在限制之內。
當您以使用者介面或管理 API 建立主題時,可以變更訊息保留的時間限制。 時間限制為最短一小時,最長 30 天。
如需使用 Kafka 用戶端或 Kafka Streams 建立主題時所接受設定之限制的相關資訊,請參閱如何使用 Kafka API 建立及刪除主題?
Event Streams 的可用性行為為何?
如果您撰寫 Event Streams 應用程式,請使用此資訊來瞭解正常的 Event Streams 可用性行為為何,以及預期您的應用程式要處理的內容。
API
在 Event Streams 的日常作業中,Kafka 叢集的節點有時會重新啟動。 在某些情況下,您的應用程式會知道,因為叢集會重新指派資源。 請將您的應用程式撰寫成對於這些變更具復原力,且能夠重新連接並重試作業。
Event Streams 的訊息大小上限為何?
Event Streams 的訊息大小上限是 1 MB,這是 Kafka 預設值。
Event Streams 的抄寫設定為何?
Event Streams 已配置為提供高度可用性及延續性。 下列配置設定套用於所有主題,且無法變更:
- replication.factor = 3
- min.insync.replicas = 2
對於主題和分割區,其限制和預設是什麼?
- 主題名稱最多只能有 200 個字元。
- 一個主題的預設分割區數目是一 (1)。
- 每個 IBM Cloud 空間有 100 個分割區的限制。 若要建立更多分割區,您必須使用新的 IBM Cloud 空間。
如何檢查已佈建哪個 Event Streams 方案?
若要確認您已配置的 Event Streams 計劃類型 (Lite、Standard 或 Enterprise),請完成下列步驟:
- 在 IBM Cloud 主控台,導覽至要檢查的 Event Streams 實例。
- 按一下左邊導覽窗格中的方案標籤。 現行方案區段會顯示您的方案類型。
可以使用 Event Streams 主控台來變更 IBM Cloud 方案嗎?
可以,但僅限於從精簡方案移至標準方案。
-
在 IBM Cloud 主控台,導覽至要變更的 Event Streams 精簡方案實例。
-
按一下左邊導覽窗格中的方案標籤。
-
在變更定價方案區段中,勾選標準方框。 按一下升級。
針對精簡方案,請稍等幾分鐘,以便清除 1 個分割區的快取限制,隨後就可以利用標準方案的 100 個分割區的限制。
但是,此選項目前在 IBM Cloud 主控台中不適用於其他任何方案組合。 例如,如果您嘗試不同的方案組合,則會看到如下的錯誤訊息:
Could not find VCAP::CloudController::ServicePlan with guid: ibm.eventstreams.standard
Event Streams 標準與 Event Streams 企業方案的差異為何?
若要找出不同 Event Streams 方案的相關資訊,請參閱選擇方案。
如何處理災難回復?
目前,使用者負責管理自己的 Event Streams 災難回復。Event Streams 資料可以在某個位置 (地區) 中的 Event Streams 實例與不同位置中的另一個實例之間抄寫。 不過,使用者負責佈建遠端 Event Streams 實例以及管理抄寫。
我們建議使用 Kafka MirrorMaker 等工具在叢集之間抄寫資料。 有關如何執行 MirrorMaker, 的資訊,請參閱 Event Streams kafka-mirrormaker 儲存庫。 如需回復處理程序的範例,請參閱 在災難回復實務範例中使用鏡映。
使用者也負責備份訊息有效負載資料。 雖然此資料會抄寫至叢集內的多個 Kafka 分配管理系統,以防禦大部分的失敗,但是此抄寫無法防禦整個位置的失敗。 建議使用者備份主題名稱和這些主題的組態資料,這是良好的作法。
如果您已在多區域地區中配置了 Event Streams 實例,則發生地區災難的可能性非常低。 但是,我們還是建議使用者對此類情況進行規劃。 如果使用者的實例由於災難而不再可用(並且遠端 DR 實例尚未設定),則使用者應該考量在新地區中配置新實例,並從備份(如果可用)還原其主題和資料。 然後,可以將應用程式指向新實例。