对于Kafka集群,给出确切的资源规模评估是一件困难的事情,因为影响资源使用的因素众多,包括使用的业务场景、业务应用程序的性能等非Kafka服务控制因素。本文结合一般场景,给出一个大致的CSP集群资源评估参考建议以帮助您在购买创建集群时评估集群的规模。在集群创建之后,您仍然可以根据实际资源使用率通过集群扩容功能来变更集群的资源配置。

集群规格

下列表格给出典型的集群规格建议。创建集群时,您仍然可以在不同规格的基础上,调整集群资源配置。
建议您在生产环境使用生产规格集群,在开发测试环境使用小规格集群。

集群规格 生产规格集群 最小规格集群
组件名称 CU Disk Nodes CU Disk Nodes
ZooKeeper 4 100 GB 3 2 100 GB 3
Kafka Brokers 12 3 TB 4 4 1 TB 3
Kafka Connect 12 N/A 2 4 N/A 2
Schema Registry 2 N/A 2 2 N/A 2
Control Center 12 300 GB 1 4 250 GB 1
ksqlDB 4 100 GB 2 4 100 GB 2
REST Proxy 16 N/A 2 4 N/A 2

如何评估集群资源

Kafka Broker资源评估

  • 首先,评估您的业务需求,这些需求参数包括:

扇出因子:写入的数据会被consumer消费多少次,不包含Broker内部副本的复制流量。
数据峰值流入:业务数据的峰值流量,单位MB/s。
数据平均流入:业务数据的平均流量,单位MB/s。
数据保留时长:数据保留时长,默认7天。
分区副本因子:分区副本因子,默认为3,即每个分区具有3个副本。

  • 估算Broker的节点数。在理想的情况下,Kafka Broker最大能够支持240MB/s的流量;建议生产集群至少需要4个Broker节点数、保留50%的IO带宽资源冗余。

Broker节点数=Max(4,数据峰值流入(扇出因子+2分区副本因子-1)*2/240MB/s)
此外,从分区副本限制考虑,每个Broker不应超过2000个分区副本;整个集群不应超过200,000个分区副本。如果预估集群总分区副本数量会比较多,建议您从总分区数来评估所需Broker的节点数。

  • 估算每个Broker的CU数量。由于所需CU数量与集群配置、客户端配置及其使用方式、分区数量、集群规模、Consumer个数、Producer个数等都有关系,难以估算。建议您创建生产集群时,每个Broker使用8CU以上的配置,开发测试集群使用4CU每Broker的配置。同时,建议您每4CU上不应超过100个leader副本、300个分区副本(含leader副本)。
  • 估算每个Broker的磁盘大小。

每个Broker的磁盘大小=Max(1TB,数据平均流入数据保留时长分区副本数/Broker节点数)

Kafka Connect资源评估

  • 节点数评估。选择2个节点以上,这样Connect是高可用的。
  • CU评估。建议选择每个节点8CU以上。

    Schema Resgitry资源评估

    Schema Resgitry建议配置为2个节点,每个节点2CU。

    Control center资源评估

    Control center生产环境建议配置1个节点,计算资源为8CU以上,数据存储300GB以上。

    ksqlDB资源评估

  • 节点数评估。选择2个节点以上,这样REST Proxy是高可用的。

  • CU评估。建议选择4CU以上。
  • 存储评估。KsqlDB的存储大小依赖于聚合语句以及并发查询的数量,默认选择100GB。

    REST Proxy资源评估

  • 节点数评估。选择2个节点以上,这样REST Proxy是高可用的。

  • CU评估。如果您需要通过REST Proxy进行消息的持续生产和消费,则您需要选择每个节点8CU以上的资源;反之,您可以选择4CU的资源。