我在做一些关于kafka和avro的研究,我有一个关于如何用kafka处理异构消息的问题。
假设我们有两个avro模式: EmailSent
以及 UserLoggedIn
. Kafka最好的消费方式是什么?
是否为每个架构创建一个主题?但如果我们有更多的模式,听起来是个坏主意。。。
存储模式名(或类似的标识符) email_sent
或者 user_logged_in
)在钥匙里 KeyedMessage
让每个消费者都按键过滤?但是每个消费者都必须消费所有的事件,这可能是一个开销。。。
其他内容:)
我希望我的问题是清楚的。提前感谢您的帮助!
干杯,
镭。
1条答案
按热度按时间c3frrgcw1#
1st Approach
:我认为,这可以在单个主题中完成。您可以根据主题中的分区来分离这两个模式数据集。假设您在主题中创建了4个分区。写下1和2中发送的电子邮件。在3和4中写入用户登录。一个消费群体将订阅1和2。第二消费群体将订阅3和4。在这种情况下,不会进行不必要的io。
2nd Approach
:创建两个单独的主题。