【发布时间】:2018-05-16 17:58:39
【问题描述】:
我们可以使用 Kafka Streams 中的哪些类/方法将 Java 对象序列化/反序列化为字节数组,反之亦然?以下链接提出了 ByteArrayOutputStream 和 ObjectOutputStream 的用法,但它们不是线程安全的。
Send Custom Java Objects to Kafka Topic
还有另一个使用 ObjectMapper 的选项,ObjectReader(用于线程安全),但这是从 POJO -> JSON -> bytearray 转换的。似乎这个选项是一个广泛的选项。想检查是否有直接的方法将对象转换为字节数组,反之亦然,这是线程安全的。请推荐
import org.apache.kafka.common.serialization.Serializer;
public class HouseSerializer<T> implements Serializer<T>{
private Class<T> tClass;
public HouseSerializer(){
}
@SuppressWarnings("unchecked")
@Override
public void configure(Map configs, boolean isKey) {
tClass = (Class<T>) configs.get("POJOClass");
}
@Override
public void close() {
}
@Override
public byte[] serialize(String topic, T data) {
//Object serialization to be performed here
return null;
}
}
注意:Kafka 版本 - 0.10.1
【问题讨论】:
标签: apache-kafka apache-kafka-streams