Managed Service for Apache Kafka 總覽

Managed Service for Apache Kafka 是一項 Google Cloud 服務,可協助您執行安全且可擴充的開放原始碼 Apache Kafka 叢集。本頁面將概略說明這項服務為您自動化及簡化的作業。如要進一步瞭解 Apache Kafka,請參閱 Apache Kafka 網站。

輕鬆調整大小及擴充

建立 Managed Service for Apache Kafka 叢集時,請指定叢集的 vCPU 總數和記憶體。服務會根據 vCPU 數量,自動佈建一定數量的代理程式。

為滿足用戶端需求,您可以監控資源用量,並視需要更新 vCPU 數量和記憶體,藉此擴充叢集。擴大叢集可能會導致系統佈建額外的代理程式。如果增加叢集大小需要新的代理程式,服務可以自動重新平衡代理程式間的分區。

如要瞭解如何選擇叢集大小,請參閱「規劃 Kafka 叢集大小」。

管理儲存空間

Managed Service for Apache Kafka 使用分層儲存空間。分層儲存空間結合了兩種儲存空間層級:

  • 少量的快速本機儲存空間,以附加至代理程式的預先佈建磁碟形式提供。
  • 近乎無限的遠端儲存空間。遠端儲存空間的費用較低,且不需要預先佈建。

分層儲存系統可讓您儲存大量資料,減少磁碟空間不足的風險。與單獨使用本機儲存空間相比,這項服務的成本也可能較低。

您有責任為個別主題設定保留時間,以控管費用或符合資料保留政策。

彈性網路

這項服務可讓您從任何虛擬私有雲安全存取叢集。包括從多個虛擬私有雲、專案和區域存取。

如要設定叢集的網路,請提供可存取叢集的子網路集。這項服務會為各子網路中的啟動伺服器和代理程式佈建私人 IP 位址。此外,這項服務也會為每個 IP 位址設定私人 Cloud DNS 和網址。啟動伺服器有負載平衡器,因此每個叢集都有單一啟動網址。所有 VPC 的網址都相同,因此用戶端設定在各個環境中都能保持一致。

這項彈性功能是透過 Private Service Connect (PSC) 達成。每個叢集分配的 IP 位址都需要 PSC 端點。端點會自動佈建。

保護叢集

這項服務提供下列叢集安全防護功能:驗證、授權、加密、修補和資源隔離。此外,這項功能也會禁止未經驗證和未加密的連線與儲存空間。

驗證

這項服務支援兩種驗證方式:簡易驗證和安全防護層 (SASL) 和相互傳輸層安全性 (mTLS)。 如要使用 mTLS 驗證,請在 2025 年 6 月 24 日後建立叢集。所有連線都會使用 SASL 或 mTLS,透過IAM 身分驗證主體。使用 SASL 時,系統支援將人員、服務和聯合帳戶做為主體。

這項服務不支援其他通訊協定,包括 SASL/GSSAPI、SASL/SCRAM-SHA-256 和 SASL/SCRAM-SHA-512。這項服務也不允許未經驗證的連線。

授權

這項服務採用分層授權方法。IAM 可控管叢集管理動作,例如建立、更新及刪除資源。已驗證主體的授權取決於所用的方法:

  • SASL:使用 IAM 的主體會透過Google Cloud IAM 角色繫結或叢集上的 Kafka ACL 獲得授權。詳情請參閱「設定 SASL 驗證」。

  • mTLS:透過 Kafka ACL 授權使用 mTLS 驗證的主體。詳情請參閱「設定 mTLS 驗證」。

您可以使用 Google Cloud 工具或第三方 Kafka 工具管理 Kafka ACL。如要進一步瞭解如何設定 IAM 和 Kafka ACL,請參閱「使用 IAM 和 Kafka ACL 控管存取權」。

加密

必須加密。與叢集的所有連線都必須使用 TLS。經紀人提供的 TLS 憑證是由 Public Certificate Authority 簽署。儲存的資料一律會加密。選擇使用 Google 代管或客戶自行管理的加密金鑰 (CMEK) 加密靜態資料。

正在套用修補程式

服務團隊會追蹤在開放原始碼中發現的安全漏洞,這項服務發現安全漏洞時,會自動修補叢集。

資源隔離

這項服務的另一項安全防護功能是資源隔離。這項代管服務會在租戶專案中部署叢集,這些叢集位於無法透過公開 IP 位址存取的私有虛擬私有雲。每個專案都有專屬的租戶專案,以及專屬的服務代理程式帳戶。這有助於限制授予服務的存取權範圍。

結構定義儲存庫

為簡化生產者和取用者之間的協調作業,Managed Service for Apache Kafka 包含結構定義登錄 API。服務提供的登錄檔可做為應用程式共用的結構定義存放區。

這項服務會實作 Confluent Schema Registry REST API,協助整合現有的 Kafka 應用程式。系統支援 Apache Avro 和通訊協定緩衝區 (Protobuf) 結構定義格式。不支援 JSON。

Managed Service for Apache Kafka 也提供管理 API 和工具組,可管理結構定義儲存庫和結構定義。這組工具包含Google Cloud 控制台、gcloud CLI 和用戶端程式庫。

如要進一步瞭解結構定義登錄,請參閱「結構定義登錄總覽」。

透過 Kafka Connect 整合資料

Managed Service for Apache Kafka 可透過 Kafka Connect 簡化資料整合作業。Kafka Connect 提供多種內建連接器外掛程式,這些外掛程式會託管在 Connect 叢集中。這些連接器可用於遷移、備份、災難復原、高可用性和資料整合。您可以透過這些連接器,將 Managed Service for Apache Kafka 叢集連線至各種系統,包括其他 Kafka 部署作業和 BigQuery、Cloud Storage 和 Pub/Sub 等 Google Cloud 服務。Kafka Connect 提供可擴充且可靠的資料整合服務,可降低作業管理負擔,並整合監控和記錄功能。

如要進一步瞭解 Kafka Connect,請參閱「Kafka Connect 總覽」。

高可用性叢集

這項服務的目標是為重要業務應用程式提供區域叢集。具體來說,這項服務可避免個別可用區或代理程式發生故障。

為此,所有叢集都會在機架感知的三可用區設定中佈建。預設主題設定至少需要三個副本。 機架感知功能可確保副本建立於不同可用區。預設的同步副本數量下限為兩個。也就是說,叢集可以容許可用區或代理程式完全遺失。

如果代理程式因軟體、硬體或網路故障而無法運作,系統會自動替換。當服務偵測到代理程式故障時,會自動重新啟動代理程式,必要時會在其他電腦上重新啟動。代理程式可用後,Apache Kafka 會將代理程式整合至叢集。如果區域完全故障,可能就無法建立新的代理程式。不過,只要其他兩個可用區仍可使用,叢集就會繼續運作。

除了上述特定功能,我們還會運用越來越多內部工具和程序,主動維護服務、Apache Kafka 程式碼和更新的健康狀態。資料和中繼資料備份作業會在多個層級進行,因此服務可從許多人為錯誤和軟體故障中復原。

這項服務無法防範區域或雙區域故障。如果應用程式需要這種程度的保護,建議您執行兩個不同的區域叢集。您可以使用 Kafka Connect 的 MirrorMaker 2.0 等工具,在兩個叢集之間同步處理資料。

適合您管理風格的工具

這項服務旨在提供全套工具,協助您管理叢集及排解問題。包括管理、監控和記錄的工具。

Managed Service for Apache Kafka 會以 Google Cloud API 的形式公開。也就是說,您可以使用 REST 和 gRPC API 管理叢集和叢集資源。這些 API 提供多個用戶端和介面,包括

  • 如果您偏好基礎架構即程式碼做法,請使用 Terraform 供應商。
  • Google Cloud 控制台中的使用者介面,可在瀏覽器中進行互動式工作。
  • 透過 gcloud CLI 在殼層中進行互動式作業。
  • 提供 Java、Python、Go 和其他語言的用戶端程式庫,方便您進行自訂開發和編寫指令碼。

這項服務會將指標匯出至 Cloud Monitoring,方便您監控及排解問題。部分指標可在服務使用者介面中查看。 如要完整瞭解互動式工作、設定快訊及匯出至其他系統,請參閱 Cloud Monitoring。

這項服務也會將代理程式記錄檔匯出至 Cloud Logging。這些記錄檔可供搜尋,並用於建立記錄指標和快訊。

升級和修補程式

Managed Service for Apache Kafka 叢集會在 Apache Kafka 3.7.1 版上執行。 這項服務會自動修補重大安全漏洞。

系統會持續自動更新基礎架構,包括作業系統和調度管理層。代理程式會透過滾動式重新啟動更新,叢集不會停機。

這項服務不會自動將代理程式上執行的 Apache Kafka 程式碼升級至新的子版本。

費用透明

Managed Service for Apache Kafka 的定價模式與您在 Compute Engine 上自行執行 Apache Kafka 時的費用類似。您需要支付佈建的資源費用 (vCPU、RAM 和本機儲存空間),以及使用的資源費用 (永久儲存空間和資料移轉)。與自行設定類似系統相比,使用 Managed Service for Apache Kafka 時,永久儲存空間和 vCPU 的費用較高。相較之下,Managed Service for Apache Kafka 和自行管理的 Kafka 在資料傳輸和本機儲存空間的價格方面,兩者差異不大。如要進一步瞭解定價,請參閱「Managed Service for Apache Kafka 定價」。

由於我們執行 Apache Kafka,因此相容

最後,Managed Service for Apache Kafka 執行的開放原始碼軟體與您環境中執行的軟體相同。您不必變更應用程式程式碼,即可將應用程式遷移至這項服務。

限制

Managed Service for Apache Kafka 有下列限制:

  • 每個叢集在三個可用區中都必須有相同的資源。不支援單一或雙區域的 Managed Service for Apache Kafka 叢集。

  • 建立叢集時無法選擇可用區。

  • 您無法設定叢集本機儲存空間的容量。

  • Managed Service for Apache Kafka 會以 KRaft 模式執行。不支援 Zookeeper 模式。

  • 系統不支援指標的 JMX API。

  • 您隨時可以透過 read-only 更新模式變更代理程式設定,但這些變更只會在代理程式重新啟動時生效。重新啟動是 Google 維護和升級程序的一部分,但沒有固定的時間表,也無法手動觸發。因此無法控制這些變更的生效時間。read-only 設定範例包括 auto.create.topics.enable 和 background.threads。使用 cluster-wide 更新模式更新設定 (例如 message.max.bytes) 時,不需要重新啟動,變更會立即生效。

  • 部分代理程式設定參數由服務管理,無法更新。包括 broker.id 和儲存空間相關設定,例如 remote.log.storage.system.enable。

後續步驟

Apache Kafka® 是 The Apache Software Foundation 或其在美國和/或其他國家/地區的關聯企業的註冊商標。