kafka旧的api生产者问题

克里斯蒂安 发表于: 2016-07-20   最后更新时间: 2016-07-25 23:04:37   3,050 游览

用旧的api生产者,用send(KeyedMessage)的时候,无法发送一个文件。
代码:

KeyedMessage<String,File> message = new KeyedMessage<String,File>(topic,key,file);
producer.send(message);

总提示我,send发送的message不能是的形式。
那这样的话,旧的生产者api怎么发送一个文件

发表于 2016-07-20

自定义序列化类型

好的。谢谢,另外,通过消费者api可以重置topic的offset吗?有时候我想从头再读。

可以,老版本的话 看这个:https://www.orchome.com/11

好的,谢谢

对了,自定义序列化类型能稍微多讲一点吗,不太明白

是在配置文件指定 serializer.class 为 java.io.File吗?

producer.send(message)方法总是提示要把KeyedMessage<String,File>换成KeyedMessage<String,String>

kafka.serializer.StringEncoder,你比着这个实现就可以了

我要写入文件的话一定要自己定义序列化类吗?直接用java.io.File这个类不行吗?

不行的,要不然就不是自定义了。

好的,用scala在仿照StringEncoder写是吧

不用呀,java也可以写的,serializer.class写上你自定义的路径就可以了

好的,这样做效率是最高的吗?直接放文件和把文件映射出来转成Sring哪个效率高?

转成文件流效率高!

你的答案

查看kafka相关的其他问题或提一个您自己的问题