apache-kafka - Kafka相对于Apache Pulsar有哪些优缺点

标签 apache-kafka apache-pulsar

雅虎开发了 Pulsar,即发布-订阅消息系统,并将其开源。现在是 Apache 的孵化项目。因为 Kafka 也用于同样的目的。想知道 Kafka 相对于 Pulsar 的主要优缺点。

最佳答案

我最近玩了一会儿,这是我收集到的。

中性:

  • 我想让 Kafka 在社区/文档等方面获胜。但我无法轻松找到关于 Kafka 的问题的答复,有些问题已经过时且令人困惑(针对旧版 API)。但 Pulsar 文档已经足够好了,开发人员对 Slack 的 react 非常灵敏(你好 @Matteo Merli :) ),如果您想深入了解内部结构,底层部分(Zookeeper、Bookkeeper)也有不错的文档。
  • Kafka 的目标是高吞吐量,Pulsar 的目标是低延迟。两者都提供了控制它的设置。
  • 两者均已投入生产并在多家公司进行了实战测试

专业 pulsar :

  • 根据我的经验,API 更易于使用。在卡夫卡中,经纪人是愚蠢的,消费者按照他们认为合适的方式构建通信。这种灵 active 的代价是 Kafka 用户必须了解如何将各个部分组合在一起。我想预期的好处是增加灵 active ,但由于 Pulsar 能够复制 Kafka Consumers API(并且只需很少的代码),我将其作为 Pulsar 的优点。
  • 您可以做一些不容易完成的事情(或者在 Kafka 中不可能完成的事情): Multi-Tenancy (安全性、隔离...)、资源管理(主题限制、配额)、异地复制
  • 它具有 Kafka 目前缺乏的一些功能,例如查找特定的 MessageId
  • Pulsar 可扩展到数百万个主题,而 Kafka 则受到 Zookeeper 中数据结构方式的限制
  • 更轻松的部署。独立的 Pulsar 会启动自己的本地 Zookeeper,我个人发现配置更容易理解
  • 用 Java 编写,而不是混合使用旧版 Scala 和 Java 代码。我还发现代码库组织良好并且更容易遵循。部分原因是它依赖于 Zookeeper 和 Bookkeeper,它们是具有自己的文档/社区/开发人员等的外部项目(请注意,这些项目也在 Apache 基金会中,并且也来自 Yahoo,因此它们可以很好地协同工作)。<

专业卡夫卡:

  • Kafka 有像 Kafka Streams 这样构建在其之上的东西(从未使用过它,所以我不能说是否有等效的)

另请阅读:

关于apache-kafka - Kafka相对于Apache Pulsar有哪些优缺点,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46048608/

相关文章:

java - Apache Pulsar - 从不同线程确认

python - pulsar : Error Checking/Getting Partition Metadata while Subscribing on persistent://public/default/test

java - 通过 HTTP 协议(protocol)替代 Kafka

apache-kafka - SQL Server 数据实时到 Kafka

spring - 带卡夫卡消费者的断路器

java - 使用 Apache Pulsar 和 Spring Boot 自定义对象

java - 使用主题模式时负载均衡Kafka记录消耗

apache-kafka - SQS 和 Kafka 是一样的吗?

go - 在Pulsar生产者上使用`SendAsync`方法时,收到`收到邮件意外发出的警告消息'

python - 填充嵌套对象什么只支持 kwargs 进行初始化?