14.10. 批准优化建议


如果您对最近生成的优化器满意,您可以指示 Cruise Control 启动集群重新平衡并开始重新分配分区。

在生成优化建议并启动集群重新平衡时尽可能少的时间。如果因为您生成了原始的优化建议而通过了一段时间,集群状态可能会有所变化。因此,发起的集群重新平衡可能与您检查的不同。如果不确定,首先生成新的优化建议。

只有一个集群重新平衡(状态为 "Active"),一次只能进行。

先决条件

流程

  1. 使用 dryrun=false 参数向 /rebalance/add_broker/remove_broker 端点发送 POST 请求:

    如果您使用 /add_broker/remove_broker 端点来生成包含或排除的代理的代理,请使用同一端点(或不使用指定代理)执行重新平衡。

    /rebalance的请求示例

    curl -X POST 'cruise-control-server:9090/kafkacruisecontrol/rebalance?dryrun=false'
    Copy to Clipboard Toggle word wrap

    /add_broker的请求示例

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/add_broker?dryrun=false&brokerid=3,4'
    Copy to Clipboard Toggle word wrap

    /remove_broker的请求示例

    curl -v -X POST 'cruise-control-server:9090/kafkacruisecontrol/remove_broker?dryrun=false&brokerid=3,4'
    Copy to Clipboard Toggle word wrap

    Cruise Control 启动集群重新平衡,并返回优化建议。

  2. 检查优化建议中概述的更改。如果更改不是您期望的 ,您可以停止重新平衡
  3. 使用 /user_tasks 端点,检查集群的进度。集群重新平衡正在进行中的状态为 "Active"。

    查看 Cruise Control 服务器上执行的所有集群重新平衡任务:

    curl 'cruise-control-server:9090/kafkacruisecontrol/user_tasks'
    
    USER TASK ID      CLIENT ADDRESS  START TIME     STATUS  REQUEST URL
    c459316f-9eb5-482f-9d2d-97b5a4cd294d  0:0:0:0:0:0:0:1       2020-06-01_16:10:29 UTC  Active      POST /kafkacruisecontrol/rebalance?dryrun=false
    445e2fc3-6531-4243-b0a6-36ef7c5059b4  0:0:0:0:0:0:0:1       2020-06-01_14:21:26 UTC  Completed   GET /kafkacruisecontrol/state?json=true
    05c37737-16d1-4e33-8e2b-800dee9f1b01  0:0:0:0:0:0:0:1       2020-06-01_14:36:11 UTC  Completed   GET /kafkacruisecontrol/state?json=true
    aebae987-985d-4871-8cfb-6134ecd504ab  0:0:0:0:0:0:0:1       2020-06-01_16:10:04 UTC
    Copy to Clipboard Toggle word wrap
  4. 要查看特定集群重新平衡任务的状态,请提供 user-task-ids 参数和任务 ID:

    curl 'cruise-control-server:9090/kafkacruisecontrol/user_tasks?user_task_ids=c459316f-9eb5-482f-9d2d-97b5a4cd294d'
    Copy to Clipboard Toggle word wrap

(可选)缩减代理

在成功重新平衡后,您可以停止任何排除的代理,以缩减 Kafka 集群。

  1. 检查正在删除的每个代理都在其日志中没有任何实时分区(log.dirs)。

    ls -l <LogDir> | grep -E '^d' | grep -vE '[a-zA-Z0-9.-]+\.[a-z0-9]+-delete$'
    Copy to Clipboard Toggle word wrap

    如果日志目录与正则表达式 \.[a-z0-9]-delete$ 匹配,则活动分区仍然存在。如果您有活跃的分区,检查重新平衡已完成,或者配置进行优化。您可以再次运行建议。确保进入下一步之前没有活动分区。

  2. 停止代理。

    su - kafka
    /opt/kafka/bin/kafka-server-stop.sh
    Copy to Clipboard Toggle word wrap
  3. 确认代理已停止。

    jcmd | grep kafka
    Copy to Clipboard Toggle word wrap
返回顶部
Red Hat logoGithubredditYoutubeTwitter

学习

尝试、购买和销售

社区

关于红帽文档

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

让开源更具包容性

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

關於紅帽

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

Theme

© 2025 Red Hat