client JDK 1.8 broker也是JDK 1.8 可以发送接收消息 但是当client换成JDK1.6 同样的代码 提示如下
Exception in thread "main" java.lang.UnsupportedClassVersionError: org/apache/kafka/common/utils/Utils : Unsupported major.minor version 51.0
at java.lang.ClassLoader.defineClass1(Native Method)
at java.lang.ClassLoader.defineClassCond(ClassLoader.java:631)
at java.lang.ClassLoader.defineClass(ClassLoader.java:615)
at java.security.SecureClassLoader.defineClass(SecureClassLoader.java:141)
at java.net.URLClassLoader.defineClass(URLClassLoader.java:283)
at java.net.URLClassLoader.access$000(URLClassLoader.java:58)
at java.net.URLClassLoader$1.run(URLClassLoader.java:197)
at java.security.AccessController.doPrivileged(Native Method)
at java.net.URLClassLoader.findClass(URLClassLoader.java:190)
at java.lang.ClassLoader.loadClass(ClassLoader.java:306)
at sun.misc.Launcher$AppClassLoader.loadClass(Launcher.java:301)
at java.lang.ClassLoader.loadClass(ClassLoader.java:247)
at kafka.utils.CoreUtils$.createObject(CoreUtils.scala:221)
at kafka.producer.Producer.<init>(Producer.scala:61)
at kafka.javaapi.producer.Producer.<init>(Producer.scala:26)
at MyProducer.main(MyProducer.java:16)
不需要一致,高版本的client不向下兼容,要注意了。
client至少1.7
那jar问题怎么解决呢?假设kafka用JDK1.8,安装kafka 10.0.0,客户端用JDK1.6 ,那编写客户端代码,用kafka10.0.0的jar包不能用,只能最高用到0.8.0的jar包,那后期会出现api问题么?由于工程需要,客户端我只能用JDK1.6,但是kafka想用高版本,所以遇到这个问题,请指教。
那你的客户端就不能使用10.0.0的了,只能用0.8以内的。kafka服务器可以用10.0.0的。
客户端使用老的0.8的,scala版本的。服务器可以用最新的,因为向下兼容
你的答案