用旧的api生产者,用send(KeyedMessage)的时候,无法发送一个文件。代码: KeyedMessage<String,File> message = new KeyedMessage<String,File>(topic,key,file); producer.send(message); 总提示我,send发送的message不能是的形式。那这样的话,旧的生产者api怎么发送一个文件
自定义序列化类型
好的。谢谢,另外,通过消费者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哪个效率高?
转成文件流效率高!
ok,谢谢
你的答案