2016-10-01 5 views
3

I konfluenten-2.0.0-2.10.5.tar.gz heruntergeladen haben, weil ich scala 2.10 Paketkonfluenten bauen mit 2,10 Paket enthalten scala 2.11 jar

aber immer noch das kafka Glas in/share/java haben wollen/schema-Registrierung ist noch kafka_2.11-0.9.0.0-cp1.jar

gibt es trotzdem kann ich ein sauberes 2.10 scala konfluenten Paket erhalte

Antwort

4

die 2.10 bezieht sich auf die Version des Kafka subpackage, sondern ein Eine andere Version kann von anderen Unterpaketen verwendet werden.

Die tar.gz-Pakete verwenden die Versionen 2.11, bei denen ein anderes Unterpaket Zugriff auf das Kern-Kafka-Jar benötigt, das eine Scala-Abhängigkeit hat. (Tatsächlich ist die Version, von der sie abhängen, wirklich die Scala-Version, die von Kafka unterstützt wird und als stabilste und gut unterstützte Upstream-Version angesehen wird). Dies ist notwendig, da Scala-Bibliotheken nicht notwendigerweise binärkompatibel zwischen verschiedenen Scala-Versionen sind, was bedeuten würde, dass dies mehrere Versionen aller Dienste erfordern würde, die die Kafka-Bibliotheken verwenden, insbesondere auf Plattformen wie Debian und RPM-basierten Distributionen , dh wir würden eine Schema-Registry-2.10 und Schema-Registry-2.11 benötigen. Stattdessen verkaufen wir die gesamte Kafka-Bibliothek für Dienste, die davon abhängen.

Beachten Sie, dass die Dateien unter/share/java/kafka nur Scala 2.10 verwenden und wenn Sie die Clients abrufen müssen, können Sie das sicher zu Ihrem Klassenpfad hinzufügen. Die Verwendung von 2.10 oder 2.11 für einen der anderen Dienste sollte nicht wichtig sein, da sie einfach sind: Dienste, die Sie ausführen. Alle Bibliotheken, die Sie möglicherweise in Ihren Klassenpfad einfügen müssen (z. B. Serialisierer), hängen nur von den reinen Java-Bibliotheken in Kafka ab und können daher problemlos mit Kafka-Bibliotheken verwendet werden, die mit einer beliebigen Scala-Version kompiliert wurden.

Verwandte Themen