在讨论Kafka和RabbitMQ之间的区别时,"dumb broker"和"smart broker"这两个概念不断出现。Kafka被描述为具有"愚蠢代理",而RabbitMQ则被认为是智能代理/愚蠢消费者模型。
那到底意味着什么呢?我对Kafka的基础知识有所了解,对RabbitMQ也略知一二。但是,RabbitMQ的哪些特点使其代理比Kafka的更加智能呢?
在讨论Kafka和RabbitMQ之间的区别时,"dumb broker"和"smart broker"这两个概念不断出现。Kafka被描述为具有"愚蠢代理",而RabbitMQ则被认为是智能代理/愚蠢消费者模型。
那到底意味着什么呢?我对Kafka的基础知识有所了解,对RabbitMQ也略知一二。但是,RabbitMQ的哪些特点使其代理比Kafka的更加智能呢?
这也是困扰我一段时间的问题 :) 我所理解的是...
在RabbitMQ中,代理确保将消息传递给消费者,并仅在获得所有需要该消息的消费者的确认时将其出队。它还跟踪消费者状态。
Kafka不跟踪“哪些消息被消费者读取”。 Kafka代理在一定时间内将所有消息保留在队列中,由消费者从队列中读取消息。它也没有跟踪消费者状态的额外操作。
您可以在此 awesome 的Pivotal博客帖子中了解有关比较RabbitMQ和Kafka的更多信息。