Kafka 优点和缺点
Apache Kafka 的优势
Apache Kafka 的以下优势值得一看:
- 低延迟: Apache Kafka 提供低延迟值,即高达 10 毫秒。这是因为它解耦了消息,让消费者可以随时消费该消息。
- 高吞吐量: 由于延迟低,Kafka 能够处理更多数量的高容量和高速度的消息。 Kafka 可以在一秒钟内支持数千条消息。 Uber 等许多公司都使用 Kafka 来加载大量数据。
- 容错: Kafka 有一项基本功能,可以抵御集群内的节点/机器故障。
- 持久性: Kafka 提供了复制功能,这使得数据或消息通过磁盘在集群上持久化。这使其经久耐用。
- 减少对多重集成的需求: 生产者写入的所有数据都通过 Kafka。因此,我们只需要创建一个与 Kafka 的集成,它会自动将我们与每个生产和消费系统集成。
- 易于访问: 由于我们所有的数据都存储在 Kafka 中,因此任何人都可以轻松访问。
- 分布式系统: Apache Kafka 包含一个分布式架构,使其具有可扩展性。分区和复制是分布式系统下的两大能力。
- 实时处理: Apache Kafka 能够处理实时数据管道。构建实时数据管道包括处理器、分析、存储等。
- 批处理方法: Kafka 使用类似批处理的用例。由于其数据持久性,它还可以像 ETL 工具一样工作。
- 可扩展性: Kafka 同时处理大量消息的质量使其成为可扩展的软件产品。
Apache Kafka 的缺点
基于以上优点,Apache Kafka 存在以下限制/缺点:
- 没有一套完整的监控工具: Apache Kafka 不包含一套完整的监控和管理工具。因此,新的初创公司或企业害怕与 Kafka 合作。
- 消息调整问题: Kafka 代理使用系统调用将消息传递给消费者。如果消息需要一些调整,Kafka 的性能会显着降低。因此,如果消息不需要更改,则效果很好。
- 不支持通配符主题选择: Apache Kafka 不支持通配符主题选择。相反,它只匹配确切的主题名称。这是因为选择通配符主题使其无法解决某些用例。
- 降低性能: 经纪人和消费者通过压缩和解压缩数据流来降低 Kafka 的性能。这不仅会影响其性能,还会影响其吞吐量。
- 笨拙的行为: 当 Kafka 集群中的队列数量增加时,Apache Kafka 通常表现得有点笨拙。
- 缺乏一些消息范式: 在某些用例中,Kafka 中缺少某些消息范式,例如点对点队列、请求/回复等。
下一章:Kafka 集群
我们已经研究过在一个 Kafka 集群中可以有多个分区、主题和代理。因此,用随着 Apache Kafka 部署的增长,拥有多个集群是有益的。在本节中,我们将讨论多集群及其优势等。Kafka 集群是一个集群,它由多个代理和 ...