linkedin / cruise-control

Cruise-control is the first of its kind to fully automate the dynamic workload rebalance and self-healing of a Kafka cluster. It provides great value to Kafka users by simplifying the operation of Kafka clusters.
https://github.com/linkedin/cruise-control/tags
BSD 2-Clause "Simplified" License
2.73k stars 583 forks source link

No such method error when metrics reporter is initialized by kafka #2064

Open aljawado700 opened 11 months ago

aljawado700 commented 11 months ago

Not sure if this is a version compatibility issue or not. When metrics reporter is loaded by kafka, no such method error is thrown:

java.lang.NoSuchMethodError: kafka.server.KafkaConfig.PortProp()Ljava/lang/String;
        at com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter.getBootstrapServers(CruiseControlMetricsReporter.java:121) ~[cruise-control-metrics-reporter-2.5.128-SNAPSHOT.jar
:?]
        at com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter.configure(CruiseControlMetricsReporter.java:143) ~[cruise-control-metrics-reporter-2.5.128-SNAPSHOT.jar:?]
        at org.apache.kafka.common.config.AbstractConfig.getConfiguredInstance(AbstractConfig.java:405) ~[kafka-clients-3.1.0.jar:?]
        at org.apache.kafka.common.config.AbstractConfig.getConfiguredInstances(AbstractConfig.java:478) ~[kafka-clients-3.1.0.jar:?]
        at kafka.server.DynamicMetricsReporters.createReporters(DynamicBrokerConfig.scala:804) ~[kafka_2.13-3.1.0.jar:?]
        at kafka.server.DynamicMetricsReporters.<init>(DynamicBrokerConfig.scala:753) ~[kafka_2.13-3.1.0.jar:?]
        at kafka.server.DynamicBrokerConfig.addReconfigurables(DynamicBrokerConfig.scala:251) ~[kafka_2.13-3.1.0.jar:?]
        at kafka.server.KafkaServer.startup(KafkaServer.scala:430) [kafka_2.13-3.1.0.jar:?]
        at kafka.Kafka$.main(Kafka.scala:109) [kafka_2.13-3.1.0.jar:?]
        at kafka.Kafka.main(Kafka.scala) [kafka_2.13-3.1.0.jar:?]

kafka version: kafka_2.13-3.1.0 cruise control version: 2.5.42

HenryCaiHaiying commented 2 months ago

This is because this variable is moved, old: KafkaConfig.ListenersProp() new: SocketServerConfigs.LISTENERS_CONFIG

See this PR in Kafka: https://github.com/apache/kafka/commit/1b301b30207ed8fca9f0aea5cf940b0353a1abca?diff=split&w=0

HenryCaiHaiying commented 2 months ago

Actually I realized your error message is a little different than mine, my error message is below. And I am running against Kafka 3.8.0

[2024-06-18 15:28:10,432] ERROR [KafkaServer id=1025] Fatal error during KafkaServer startup. Prepare to shutdown (kafka.server.KafkaServer) java.lang.NoSuchMethodError: 'java.lang.String kafka.server.KafkaConfig.ListenersProp()' at com.linkedin.kafka.cruisecontrol.metricsreporter.CruiseControlMetricsReporter.getBootstrapServers(CruiseControlMetricsReporter.java:129)