首页 > 解决方案 > SQS 和 Kafka 是一样的吗?

问题描述

Kafka 和 SQS 是一样的吗?我看到两者都是消息队列系统并且是基于事件的。它们是否具有相同的目的,如果不是,它们有何不同?

标签: apache-kafkaamazon-sqs

解决方案


是的,它们是两个消息传递系统,但有很大的不同:

  • 卡夫卡

Kafka 是一个非常可扩展的系统,当您想要批量发送消息(以获得良好的消息吞吐量)时,它适合高工作负载。
Kafka 主题由一些分区组成,这些分区可以被一个消费者组中的不同消费者完全并行读取,这给了我们非常好的性能。
例如,如果你需要构建一个高负载的流系统,Kafka 真的很适合它。

  • SQS

SQS 是 Amazon 托管服务(因此您不必自己支持基础设施)。
当您需要捕获某个客户端的某些消息(事件)时,SQS 更适合事件,然后该消息将自动从队列中弹出。
至于我的经验,SQS 没有 Kafka 快,也不适合高工作量,它更适合每秒事件数不多的事件。
例如,如果您想对一些 S3 文件上传做出反应(开始对该文件进行一些处理),SQS 非常好。


推荐阅读