我们有以下两个选项
1)如果我们打算将自定义Java对象发送给生产者,则需要创建一个实现
org.apache.kafka.common.serialization.Serializer
的序列化器,并在创建生产者期间传递该Serializer类
下面的代码参考
public class PayloadSerializer implements org.apache.kafka.common.serialization.Serializer { public void configure(Map map, boolean b) { } public byte[] serialize(String s, Object o) { try { ByteArrayOutputStream baos = new ByteArrayOutputStream(); ObjectOutputStream oos = new ObjectOutputStream(baos); oos.writeObject(o); oos.close(); byte[] b = baos.toByteArray(); return b; } catch (IOException e) { return new byte[0]; } } public void close() { }}并据此设置值序列化器
<entry key="value.serializer" value="com.spring.kafka.PayloadSerializer" />
2)无需创建自定义序列化器类。使用现有的ByteArraySerializer,但在发送过程中遵循该过程
Java对象->字符串(最好是JSON表示形式,而不是toString)-> byteArray



