首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >是什么使卡夫卡的吞吐量更高?

是什么使卡夫卡的吞吐量更高?
EN

Stack Overflow用户
提问于 2017-06-19 02:16:02
回答 2查看 4.6K关注 0票数 8

大多数文章都在读/写吞吐量方面比ActiveMQ等其他消息代理(MB)更好地描述了Kafka。在偏置的帮助下,理解读/写使它更快。但我不清楚抵消如何使它更快?

在阅读了Kafka架构之后,我对Kafka的可伸缩性和高吞吐量有了一些了解,但不清楚的原因如下:

  1. 使用偏移量,客户端可能知道需要读取的确切消息--这可能是使其性能更高的因素之一。 在其他MB的情况下,代理需要在使用者之间进行协调,以便消息只传递给使用者。但这种情况只适用于队列,而不适用于主题。那么是什么使卡夫卡的主题比其他MB的主题更快。
  2. Kafka为可伸缩性提供分区,但其他消息代理(MB),如ActiveMQ,也提供集群。那么,卡夫卡如何更好地处理大数据/高负载呢?
  3. 在其他MB中,我们可以有侦听器。因此,消息一到,代理就会传递消息,但是如果是Kafka,我们需要轮询,这意味着代理/客户端的负载都会增加吗?
EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2017-06-19 03:06:07

在Jay的博客文章中有很多关于卡夫卡与其他消息传递系统不同和更快的细节。

https://engineering.linkedin.com/kafka/benchmarking-apache-kafka-2-million-writes-second-three-cheap-machines

实际上,有许多不同之处使卡夫卡表现得很好,包括但不限于:

  • 最大限度地利用顺序磁盘读写
  • 消息的零拷贝处理
  • 使用Linux OS页缓存而不是Java堆进行缓存
  • 在集群中跨多个代理对主题进行分区
  • 从代理中卸载某些功能的智能客户端库
  • 批处理多条已发布的消息,以减少对代理的网络往返次数
  • 支持多条飞行中的消息
  • 将数据预取到客户端缓冲区,以加快后续请求。
票数 14
EN

Stack Overflow用户

发布于 2019-03-05 17:52:31

卡夫卡对于一个消息经纪人来说,在很大程度上是市场营销的产物。例如,IBM MessageSight设备在2013年以微秒延迟的速度达到1300万msgs/秒。在一台机器上。甚至在克雷普斯创立吉顿之前一年。:https://www.zdnet.com/article/ibm-launches-messagesight-appliance-aimed-at-m2m/

卡夫卡有很多优点。真低延迟消息不是其中之一,在任何纯以延迟为中心的环境中,都不能使用批处理传递(例如,一系列偏移)。当事件到达时,如果您想要最低的延迟,必须立即尝试传递()。这并不意味着等待几秒钟来批处理,读取一个事件块,或者忍受请求每条消息的开销。尝试使用卡夫卡的偏移范围为1(所以:1消息),如果你想比较它与一个正常的基于推送的经纪人,你会明白我的意思。

相反,我建议将重点放在基于拉式的流缓冲确实给了您:

  • 可重放!

就我个人而言,我认为这使下游数据工程系统在遇到故障时更容易构建,特别是因为您不必依赖它们的内置复制模型(如果它们甚至有)。例如,我很容易使用消息、丢失磁盘、恢复机器和重播丢失的数据。数据流成为其他系统可以同步的唯一真相来源,这是非常有用的!!

在信息传递中没有免费午餐,拉和推每个人都有各自的优势和劣势。人们也尝试过推拉式的信息传递,这也不是什么免费的午餐,这一点可能并不奇怪:)。

票数 6
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/44621384

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档