Closed marcelloromani closed 1 month ago
@CCisGG I think we chose a version of CC that is too new for our MSK cluster (which is running Kafka 2.8.1). I remember the first time we played with Cruise Control we used the migrate_to_kafka_2_5
branch but the only one I can find now is migrate_to_kafka_2_4
Would you be able to point me to the CC version that supports Kafka 2.8?
Thanks!
Sorry, rubberduck debugging here:
The main (previously migrate_to_kafka_2_5) branch of Cruise Control is compatible with Apache Kafka 2.5+ (i.e. Releases with 2.5.*), 2.6 (i.e. Releases with 2.5.11+), 2.7 (i.e. Releases with 2.5.36+), 2.8 (i.e. Releases with 2.5.66+), 3.0 (i.e. Releases with 2.5.85+), and 3.1 (i.e. Releases with 2.5.85+).
To answer one of my own questions:
migrate_to_kafka_2_5
is now main
as stated in the READMEI guess I can refine the question about Kafka 2.8:
2.8 (i.e. with 2.5.66+)
The way I read this is that Cruise Control releases 2.5.66 onwards support Kafka 2.8, with subsequent Kafka versions added to CC. Since we're using 2.5.137, we should be good, correct?
I will try to downgrade CC to 2.5.66 in the meantime: perhaps Kafka 2.8 support has been accidentally dropped in subsequent versions?
It turns out in our build there was an error which for some obscure reason pulled in two different kafka library versions - 3.5.1 and 3.6.1 The mix of jars from these two versions caused the "method not found issue".
We fixed the dependency mismatch by ensuring that only kafka 3.5.1 libraries were included, and the problem went away.
Kafka 3.5.1 is mentioned in CC's gralde.properties: https://github.com/linkedin/cruise-control/blob/2.5.137/gradle.properties#L5
Lessons learned:
I am running Cruise Control on EKS, talking to an MSK cluster.
Full log line:
After this happens, cluster state endpoint returns this exception:
Context:
Cruise Control version: 2.5.137 MSK Kafka version: 2.8.1
Relevant entries from
cruisecontrol.properties
:zookeeper.connect=z-1,z-2,z-3
(obv. the actual addresses)bootstrap.servers-b-1,b-2
(obv. the actual addresses)topic.config.provider.class=com.linkedin.kafka.cruisecontrol.config.KafkaTopicConfigProvider
jaas.conf
Additional log lines that might be relevant: