12.8. Cruise Control 配置
config/cruisecontrol.properties
文件包含 Cruise Control 的配置。该文件由以下类型之一属性组成:
- 字符串
- Number
- 布尔值
您可以指定并配置 Cruise Control Wiki 的 Configurations 部分中列出的所有属性。
容量配置
Cruise Control 使用 容量限制 来确定某些基于资源的优化目标是否被破坏。如果将一个或多个基于资源的目标设置为硬目标,则尝试优化会失败,然后中断。这可防止优化用于生成优化建议。
您可以在 cruise-control/config
中的以下三个 .json
文件中为 Kafka 代理资源指定容量限制:
-
capacityJBOD.json
:用于 JBOD Kafka 部署(默认文件)。 -
capacity.json
: 用于非JBOD Kafka 部署,每个代理都有相同的 CPU 内核数。 -
capacityCores.json
: 用于在每个代理都有不同 CPU 内核数的非JBOD Kafka 部署中使用。
在 cruisecontrol.properties
中的 capacity.config.file
属性中设置文件。所选文件将用于代理容量解析。例如:
capacity.config.file=config/capacityJBOD.json
capacity.config.file=config/capacityJBOD.json
可以在上述单元中为以下代理资源设置容量限制:
-
DISK
:以 MB 为单位的磁盘存储 -
CPU
: CPU 使用率为百分比(0-100)或内核数 -
NW_IN
:入站网络吞吐量(KB 每秒) -
NW_OUT
:出站网络吞吐量(KB 每秒)
要将相同的容量限制应用到由 Cruise Control 监控的每个代理,请为代理 ID -1
设置容量限制。要为单个代理设置不同的容量限制,请指定每个代理 ID 及其容量配置。
容量限制配置示例
如需更多信息,请参阅 Cruise Control Wiki 中的填充 容量配置文件。
Cruise Control Metrics 主题的日志清理策略
非常重要的一点是,自动创建的 __CruiseControlMetrics
主题(请参阅额 auto-created topics)有一个日志清理策略 DELETE
而不是 COMPACT
。否则,Cruise Control 所需的记录可能会被删除。
如 第 12.3 节 “部署 Cruise Control Metrics Reporter” 所述,在 Kafka 配置文件中设置以下选项可确保 COMPACT
日志清理策略被正确设置:
-
cruise.control.metrics.topic.auto.create=true
-
cruise.control.metrics.topic.num.partitions=1
-
cruise.control.metrics.topic.replication.factor=1
如果在 Cruise Control Metrics Reporter 中的主题自动创建为 disabled(cruise.control.metrics.topic.auto.create=false
),但在 Kafka 集群中是 enabled,__CruiseControlMetrics
主题仍然由代理自动创建。在这种情况下,您必须使用 kafka-configs.sh
工具将 __CruiseControlMetrics
主题的日志清理策略改为 DELETE
。
获取
__CruiseControlMetrics
主题的当前配置:bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --describe
bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --describe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在主题配置中更改日志清理策略:
bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --alter --add-config cleanup.policy=delete
bin/kafka-configs.sh --bootstrap-server <BrokerAddress> --entity-type topics --entity-name __CruiseControlMetrics --alter --add-config cleanup.policy=delete
Copy to Clipboard Copied! Toggle word wrap Toggle overflow
如果在 Cruise Control Metrics Reporter 和 Kafka 集群中都 禁用了 主题自动创建,则必须手动创建 __CruiseControlMetrics
主题,然后使用 kafka-configs.sh
工具将它配置为使用 DELETE
日志清理策略。
更多信息请参阅 第 5.9 节 “修改主题配置”。
日志记录配置
Cruise Control 将 log4j1
用于所有服务器日志记录。要更改默认配置,请编辑 /opt/cruise-control/config/log4j.properties
文件中的 log4j.properties
文件。
在更改生效前,您必须重启 Cruise Control 服务器。