我正在使用他们新的kafkaproducerapi设置kafka producer,出现以下错误
Exception in thread "main" org.apache.kafka.common.config.ConfigException: Missing required configuration "key.serializer" which has no default value.
at org.apache.kafka.common.config.ConfigDef.parse(ConfigDef.java:124)
at org.apache.kafka.common.config.AbstractConfig.<init>(AbstractConfig.java:48)
at org.apache.kafka.clients.producer.ProducerConfig.<init>(ProducerConfig.java:235)
at org.apache.kafka.clients.producer.KafkaProducer.<init>(KafkaProducer.java:129)
at com.kafka.producer.App.KafkaProducer(App.java:43)
at com.kafka.producer.App.main(App.java:33)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
at java.lang.reflect.Method.invoke(Method.java:483)
at com.intellij.rt.execution.application.AppMain.main(AppMain.java:134)
这里似乎没有默认的序列化程序和文档http://kafka.apache.org/documentation.html#newproducerconfigs 我看不到可能的值。
此问题适用于Kafka0.8.2.0版本
2条答案
按热度按时间dgiusagp1#
假设需要stringserializer,请使用:
完整示例如下:https://github.com/camerongregory/kafka/blob/master/testproducer.java
8i9zcol22#
Kafka的早期版本带有默认的序列化程序,但这造成了很多混乱。
对于0.8.2,您需要自己从stringserializer或api附带的bytearrayserializer中选择一个序列化程序,或者构建自己的序列化程序。
可以在stringserializer中找到api序列化程序:http://kafka.apache.org/082/javadoc/org/apache/kafka/common/serialization/stringserializer.html bytearrayserializer公司:http://kafka.apache.org/082/javadoc/org/apache/kafka/common/serialization/bytearrayserializer.html
因此,如果您希望使用默认序列化程序,您的解决方案是使用以下选项之一。
或