【发布时间】:2017-02-02 16:48:20
【问题描述】:
我正在使用 Avro 序列化对象,然后将它们添加到将由客户端使用和反序列化的 Kafka 消息中。我尝试了几种不同的序列化方法,但它们似乎都没有将模式嵌入数据流中。这是我的序列化代码的最新版本。您可以看到已注释掉的使用各种可用编写器的尝试。
public static byte[] Serialize<T>(T recordObj) where T : ISpecificRecord
{
Log.Info("Serializing {0} object to Avro.", typeof(T));
try
{
using (var ms = new MemoryStream())
{
var encoder = new BinaryEncoder(ms);
//var writer = new SpecificDefaultWriter(recordObj.Schema);
var writer = new SpecificDatumWriter<T>(recordObj.Schema);
//writer.Write(recordObj.Schema, recordObj, encoder);
writer.Write(recordObj, encoder);
return ms.ToArray();
}
}
catch (Exception ex)
{
Log.Error("Failed to Avro serialize object. {0}", ex);
return null;
}
}
我不太确定还能尝试什么。
【问题讨论】: