资深措施员多年总结:解密Kafka吞吐量高的缘故起因
没错,Kafka是用mmap作为文件读写方法的,它就是一个文件句柄,以是直接把它传给sendfile;偏移也好办理,用户会本身保持这个offset,每次哀求城市发送这个offset。(还记得吗?放在zookeeper中的);数据量更轻易办理了,假如斲丧者想要更快,就所有扔给斲丧者。假如这样做一样平常环境下斲丧者必定直接就被压死了;以是Kafka提供了的两种方法——Push,我所有扔给你了,你死了不管我的工作;Pull,好吧你汇报我你必要几多个,我给你几多个。 总结Kafka速率的法门在于,它把全部的动静都酿成一个的文件。通过mmap进步I/O速率,写入数据的时辰它是末端添加以是速率最优;读取数据的时辰共同sendfile直接暴力输出。阿里的RocketMQ也是这种模式,只不外是用Java写的。 纯真的去测试MQ的速率没有任何意义,Kafka这种“暴力”、“混混”、“无耻”的做法已经脱了MQ的底裤,更像是一个暴力的“数据传送器”。以是对付一个MQ的评价只以速率论好汉,天下上没人醒目的过Kafka,我们计划的时辰不能听信网上的蜚语虚名——“Kafka最快,各人都在用,以是我们的MQ用Kafka没错”。在这种头脑的浸染下,你也许基础不会体谅“失败者”;而现实上也许这些“失败者”是更得当你营业的MQ。
(编辑:湖南网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |