kafka 消息的 Thrift 序列化 - 每个结构一个主题

Thrift serialization for kafka messages - single topic per struct

我计划将 kafka 用作 persistent log for event sourcing,目前我正在研究不同的序列化选项。我目前的重点是使用 thrift 对我将存储在 kafka 中的消息进行序列化和反序列化。

当使用 thrift 为 kafka 序列化消息时,最简单的方法似乎是每个 kafka 主题有一个单一的 thrift 结构。

问题:这是一个很好的实践模式吗?如果不是,能否请您列出采用这种方法的缺点?


注:如果您觉得本题不符合Whosebug的标准,请帮我改进!

Thrift 结构不带有任何结构类型的指示符(至少在默认二进制协议中没有)。因此,要反序列化 Thrift 数据树,您需要知道根部的结构类型。因此,您关于每个主题一种结构类型的想法是明智的。

虽然在这种情况下可能有用的一件事是 Thrift 联合...您可以定义一个联合,其中包含您希望能够在该主题上发布的所有不同类型的字段,并且消费者只需序列化联合类型并确定设置了哪个字段。这种方法的开销很小,因为 Thrift 联合针对此用例进行了优化。