我正在对 Kafka 和 Avro 进行一些研究,我对如何使用 Kafka 处理异构消息提出了疑问。
假设我们有两个 Avro 模式:EmailSent
和UserLoggedIn
。卡夫卡消费它们的最佳方式是什么?
email_sent
或user_logged_in
)等标识符存储在KeyedMessage
的密钥中,然后让每个消费者过滤钥匙?但是每个消费者都必须消费所有的活动,这可能是一个开销...... 我希望我的问题很明确。在此先感谢您的帮助!
干杯,
镭。
答案 0 :(得分:0)
1st Approach
:我认为,这可以在单个主题中完成。您可以在主题中基于分区来分离这两个架构数据集。假设您在主题中创建了4个分区。在1和2中写下email_sent.2。在3和4中写入user_logged_in
一个消费者组将订阅1和2.第二个消费者组将订阅3和4.在此,没有不必要的IO。
2nd Approach
:创建两个单独的主题。