14.8. 精简控制配置
config/cruisecontrol.properties
文件包含 Cruise Control 的配置。该文件由以下类型之一的属性组成:
- 字符串
- 数字
- 布尔值
您可以指定和配置 Cruise Control Wiki 的 Configurations 部分中列出的所有属性。
容量配置
取胜控制使用 容量限制 来确定某些基于资源的优化目标是否被破坏。如果将一个或多个基于资源的目标设定为困难目标,然后破坏,则尝试进行优化会失败。这可以防止使用优化建议生成优化建议。
您可以在以下三个 .json
文件中为 Kafka 代理资源指定容量限值 cruise-control/config
:
-
capacityJBOD.json
: 用于 JBOD Kafka 部署(默认文件)。 -
capacity.json
: 用于非 JBOD Kafka 部署,每个代理都有相同数量的 CPU 内核。 -
capacityCores.json
: 用于非 JBOD Kafka 部署,每个代理都有不同数量的 CPU 内核。
在 cruisecontrol.properties
中的 capacity.config.file
属性中设置文件。所选文件将用于代理容量解析。例如:
capacity.config.file=config/capacityJBOD.json
可以在描述的单元中为以下代理资源设置容量限制:
-
DISK
: MB 的磁盘存储 -
CPU
: CPU 使用率作为百分比(0-100)或作为内核数 -
NW_IN
: 入站网络吞吐量(以 KB/秒为单位) -
NW_OUT
: 出站网络吞吐量(以 KB/秒为单位)
要将相同的容量限制应用到 Cruise Control 监控的每个代理,请为代理 ID -1
设置容量限制。要为各个代理设置不同的容量限值,请指定每个代理 ID 及其容量配置。
容量限制配置示例
{ "brokerCapacities":[ { "brokerId": "-1", "capacity": { "DISK": "100000", "CPU": "100", "NW_IN": "10000", "NW_OUT": "10000" }, "doc": "This is the default capacity. Capacity unit used for disk is in MB, cpu is in percentage, network throughput is in KB." }, { "brokerId": "0", "capacity": { "DISK": "500000", "CPU": "100", "NW_IN": "50000", "NW_OUT": "50000" }, "doc": "This overrides the capacity for broker 0." } ] }
如需更多信息,请参阅 在 Cruise Control Wiki 中填充容量配置文件。
Cruise Control Metrics 主题的日志清理策略
自动创建的 __CruiseControlMetrics
主题(请参阅自动创建 的主题)包含 DELETE
而不是 COMPACT
的日志清理策略非常重要。否则,可能会删除 Cruise Control 所需的记录。
如 第 14.3 节 “部署 Cruise 控制指标报告器” 所述,在 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(cruise.control.metrics.topic.auto.create=false
)中 禁用 了主题自动创建,但在 Kafka 集群中 启用了,则代理仍然会自动创建 __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 --alter --add-config cleanup.policy=delete
如果在 Cruise Control Metrics Reporter 和 Kafka 集群中 禁用 了主题自动创建,则必须手动创建 __CruiseControlMetrics
主题,然后使用 kafka-configs.sh
工具将其配置为使用 DELETE
日志清理策略。
如需更多信息,请参阅 第 5.9 节 “修改主题配置”。
日志记录配置
精简控制对所有服务器日志使用 log4j1
。要更改默认配置,编辑 /opt/cruise-control/config/log4j.properties
中的 log4j.properties
文件。
您必须重新启动 Cruise Control 服务器,然后更改才会生效。