第 10 章 通过添加或删除代理来扩展集群


通过添加代理扩展 Kafka 集群可以提高集群的性能和可靠性。添加更多代理会增加可用资源,允许集群处理较大的工作负载并处理更多信息。它还可以通过提供更多副本和备份来提高容错。相反,删除使用率不足的代理可以降低资源消耗并提高效率。必须仔细进行缩放以避免中断或数据丢失。通过在集群中的所有代理间重新分发分区,每个代理的资源利用率会减少,这可以提高集群的整体吞吐量。

注意

要增加 Kafka 主题的吞吐量,您可以增加该主题的分区数量。这允许加载集群中的不同代理之间共享该主题。但是,如果每个代理都受特定资源(如 I/O)的限制,添加更多分区不会增加吞吐量。在这种情况下,您需要在集群中添加更多代理。

调整 Kafka.spec.kafka.replicas 配置会影响作为副本的集群中的代理数量。主题的实际复制因素由 default.replication.factormin.insync.replicas 的设置以及可用代理的数量决定。例如,复制因素 3 表示主题的每个分区在三个代理之间复制,确保在代理失败时进行容错。

副本配置示例

apiVersion: kafka.strimzi.io/v1beta2
kind: Kafka
metadata:
  name: my-cluster
spec:
  kafka:
    replicas: 3
    # ...
  config: 
1

      # ...
      default.replication.factor: 3
      min.insync.replicas: 2
 # ...
Copy to Clipboard Toggle word wrap

当您添加或删除代理时,Kafka 不会自动重新分配分区。执行此操作的最佳方法是使用 Cruise Control。您可以在扩展集群或缩减时使用 Cruise Control 的 add-brokersremove-brokers 模式。

  • 在扩展 Kafka 集群后,使用 add-brokers 模式,将分区副本从现有代理移到新添加的代理中。
  • 在缩减 Kafka 集群前,使用 remove-brokers 模式,将分区副本从要删除的代理移出。
注意

在缩减代理时,您无法指定要从集群中移除的特定 pod。相反,代理移除过程从最高编号的 pod 开始。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

通过我们的产品和服务,以及可以信赖的内容,帮助红帽用户创新并实现他们的目标。 了解我们当前的更新.

让开源更具包容性

红帽致力于替换我们的代码、文档和 Web 属性中存在问题的语言。欲了解更多详情,请参阅红帽博客.

關於紅帽

我们提供强化的解决方案,使企业能够更轻松地跨平台和环境(从核心数据中心到网络边缘)工作。

Theme

© 2025 Red Hat