14.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
:以百分比(0-100)或以内核数为内核数的 CPU 使用率 -
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 需要的记录可能会被删除。
如 第 14.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
主题的当前配置:opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --entity-type topics --entity-name __CruiseControlMetrics --describe
opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --entity-type topics --entity-name __CruiseControlMetrics --describe
Copy to Clipboard Copied! Toggle word wrap Toggle overflow 在主题配置中更改日志清理策略:
/opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --entity-type topics --entity-name __CruiseControlMetrics --alter --add-config cleanup.policy=delete
/opt/kafka/bin/kafka-configs.sh --bootstrap-server <broker_address> --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 集群中都 禁用了 topic auto-creation,则必须手动创建 __CruiseControlMetrics
主题,然后使用 kafka-configs.sh
工具将它配置为使用 DELETE
日志清理策略。
更多信息请参阅 第 6.9 节 “修改主题配置”。
日志配置
Cruise Control 使用 log4j1
作为所有服务器日志。要更改默认配置,请编辑 /opt/cruise-control/config/log4j.properties
文件中的 log4j.properties
文件。
您必须重启 Cruise Control 服务器,才能使更改生效。