我来自RabbitMQ背景,使用RabbitMQ,您可以设置基于路由密钥将消息路由到不同队列的交换。
在Kafka,我目前如何理解主题是他们可以被认为是队列(永远不会被清空)。但是,我有兴趣根据某个标准将不同的主题放入不同的主题,我想避免在生产者方面做这个逻辑。
是否存在与RabbitMQ交换的Kafka等价物?
答案 0 :(得分:2)
没有等价物。将不同消息路由到的唯一方法 不同的主题是将这种逻辑放在生产者方面。甚至决定发送单个消息的主题的哪个分区留给生产者。
卡夫卡的强大实力在于它非常简单。这就是为什么Kafka可以真正,非常好地扩展的部分原因。缺点是Kafka没有传统消息队列的功能集。
答案 1 :(得分:0)
在Spring Cloud Stream透视图中,主题是RabbitMQ的 Exchange 的Kafka等价物。它们都是消息的代理端目的地,并实现发布/订阅模式。
虽然RabbitMQ Exchange将消息路由到单个消费者使用的不同队列,但Kafka Topic仅将消息传递给其分区中的一个,该消息仅供排他性使用消费者群体中的一个消费者。
答案 2 :(得分:0)
Kafka 有一个叫做消息密钥的东西,当第一次将消息密钥添加到消息中时,Kafka 将其推送到主题中的随机分区,但是当有具有相同消息密钥的新消息时,Kafka 会将其推送到同一个分区