来源 | medium
编译 | CryptoShadow,责编 | Carol
出品 | CSDN云计算(ID:CSDNcloud)
作为处理许多基于微服务系统的软件架构师,我会经常遇到不断重复的问题:“我应该使用RabbitMQ还是Kafka?” 由于某些原因,许多开发人员认为这两种技术是可互换的。 尽管某些情况下确实如此,但实际上这两个平台之间存在着很多潜在的差别。
因此,不同的场景需要不同的解决方案,选择错误的解决方法会严重影响您设计、开发和维护您的软件解决方案。
本文的目的是首先介绍基本的异步消息传递模式。然后,我们会展开介绍RabbitMQ和Kafka及其内部结构。
异步消息传递模式
异步消息传递是一种消息传递方案,其中生产者(Producer)的消息生产与消费者(Consumer)的消息处理不相关。在处理消息传递系统时,我们通常会确定两种主要的消息传递模式——消息队列和发布/订阅。
消息队列
在消息队列通信模式中,队列在时间上使生产者与消费者脱钩。多个生产者可以将消息发送到同一队列。但是,当使用者处理邮件时,该邮件将被锁定或从队列中删除,并且不再可用。只有一个消费者消费一条特定的消息。