我计划将kafka用作persistent log for event sourcing,而我目前正在调查不同的序列化选项。我现在的重点是使用thrift来对我将在kafka中存储的消息进行序列化和反序列化。
当使用thrift为kafka序列化消息时,最简单的方法似乎是每个kafka主题都有一个thrift结构。
问题:这是一个在实践中遵循的好模式吗?如果没有,请列出遵循这种方法的缺点吗?
注意:如果您认为此问题不符合stackoverflow标准,请帮助我改进它!
答案 0 :(得分:2)
Thrift结构不带任何结构类型的指示符(至少不在默认的二进制协议中)。因此,要反序列化Thrift数据树,您需要知道根的结构类型。因此,您对每个主题的一种结构类型的想法是明智的。
在这种情况下可能有用的一件事是Thrift联盟......你可以定义一个单一的联合,它包含你希望能够在主题上发布的所有不同类型的字段,以及消费者可以只序列化联合类型并找出设置的字段。这种方法的开销非常小,因为Thrift联合会针对这个用例进行了优化。