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

Chr*_*now 5 thrift apache-kafka

我计划使用 kafka 作为事件源持久日志,我目前正在研究不同的序列化选项。我目前的重点是使用 thrift 对我将存储在 kafka 中的消息进行序列化和反序列化。

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

问题:这是在实践中遵循的好模式吗?如果没有,您能否列出遵循这种方法的缺点?


注意:如果你觉得这个问题不符合stackoverflow标准,请帮我改进!

BCG*_*BCG 3

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

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