第 14 章 使用 Cruise Control 进行集群重新平衡


Cruise Control 是一个用于自动化 Kafka 操作的开源系统,如监控集群工作负载、根据预定义的限制重新平衡集群,并检测和修复异常情况。它由四个主要组件组成,即 Load Monitor、Anomaly Detector 和 Executor-​,以及用于客户端交互的 REST API。

您可以使用 Cruise Control 重新平衡 Kafka 集群。Red Hat Enterprise Linux 上为 AMQ Streams 的 Cruise Control 由一个单独的压缩发布提供。

AMQ Streams 使用 REST API 来支持以下 Cruise Control 功能:

  • 从优化目标中生成优化建议。
  • 根据优化建议,重新平衡 Kafka 集群。

    优化目标

    优化目标描述了从重新平衡达到的特定目标。例如,一个目标可能是在代理间平均分配主题副本。您可以更改通过配置包括的目标。目标定义为一个硬目标或软目标。您可以通过 Cruise Control 部署配置添加硬目标。您还有主(默认)和用户提供的目标,它们适用于这两个类别。

    • 硬目标是 预先设置的,必须满足优化建议才能成功。
    • 对于成功优化建议,不需要满足软目标。如果满足所有目的,则可以将它们设定为:
    • 主目标 从内核控制继承。有些是预先设置的,作为实现的。默认情况下,使用的主要目标用于优化建议。
    • 默认目标 与主要目标默认是一样的。您可以指定自己的一组默认目标。
    • 用户提供的目标是配置用于生成特定优化器的默认目标子集。
    优化建议

    优化建议由您要从重新平衡实现的目标组成。您可以创建一个优化建议,以创建建议更改的摘要以及可通过重新平衡的结果。目标以特定优先级顺序进行评估。然后,您可以选择批准或拒绝提议。您可以使用一组调整的目标拒绝再次运行它。

    您可以通过向以下 API 端点之一发出请求并批准优化建议。

    • /rebalance 端点用于运行一个完整的重新平衡操作。
    • 在扩展 Kafka 集群时添加代理后,/add_broker 端点重新平衡。
    • 在删除 Kafka 集群时,/remove_broker 端点会重新平衡。

您可以通过配置属性文件配置优化目标。AMQ Streams 为 Cruise Control 提供了示例属性文件。

目前还不支持其他 Cruise Control 功能,包括自我修复、通知、编写目标以及更改主题复制因素。

14.1. Cruise Control 组件和功能

Cruise Control 包括四个主要组件 - Load Monitor、Anomaly Detector 和 Executor-​ 以及用于客户端交互的 REST API。AMQ Streams 使用 REST API 来支持以下 Cruise Control 功能:

  • 从优化目标中生成优化建议。
  • 根据优化建议,重新平衡 Kafka 集群。
优化目标

优化目标描述了从重新平衡达到的特定目标。例如,一个目标可能是在代理间平均分配主题副本。您可以更改通过配置包括的目标。目标定义为一个硬目标或软目标。您可以通过 Cruise Control 部署配置添加硬目标。您还有主(默认)和用户提供的目标,它们适用于这两个类别。

  • 硬目标是 预先设置的,必须满足优化建议才能成功。
  • 对于成功优化建议,不需要满足软目标。如果满足所有目的,则可以将它们设定为:
  • 主目标 从内核控制继承。有些是预先设置的,作为实现的。默认情况下,使用的主要目标用于优化建议。
  • 默认目标 与主要目标默认是一样的。您可以指定自己的一组默认目标。
  • 用户提供的目标是 配置用于生成特定优化器的默认目标子集。
优化建议

优化建议由您要从重新平衡实现的目标组成。您可以创建一个优化建议,以创建建议更改的摘要以及可通过重新平衡的结果。目标以特定优先级顺序进行评估。然后,您可以选择批准或拒绝提议。您可以使用一组调整的目标拒绝再次运行它。

您可以以三种模式之一生成优化方案。

  • full 是默认模式,运行完整重新平衡。
  • add-brokers 是在扩展 Kafka 集群时添加代理后所使用的模式。
  • remove-brokers 是在缩减 Kafka 集群时删除代理前所使用的模式。

目前还不支持其他 Cruise Control 功能,包括自我修复、通知、编写目标以及更改主题复制因素。

返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat