为Kafka的使用创建ProtoBuf对象模式



我在Kafka上使用ProtoBuf。我们正在创建许多ProtoBuf消息,但我们被这两个选项卡住了。想知道最好的方法是什么?希望这个问题不会被降级,因为它在某种程度上是基于观点的!

比如说,我想在卡夫卡上给员工发信息。我想使用";id";作为kafka密钥;"雇员";消息如下。

选项-1包括";id";。在该选项中,整个对象作为域对象位于一个位置。

message Employee {
string id;
string name;
string title;
}

选项-2不包括id,因为它试图使用Kafka密钥(我们用id填充(,并让消费者在从Kafka中取出消息时将它们拼凑在一起?

message Employee {
string name;
string title;
}

关于这两种方法的利弊以及任何已知的最佳实践,有什么建议吗?谢谢

根据我的经验:

  • 消息应包含所有必需的信息
  • 密钥是消息传递系统了解如何处理消息的辅助信息

因此,在两个选项之间,第一个选项更可取。

最新更新