卡夫卡队列
总览
最近,我被要求比较《卡夫卡》和《编年史》的性能。 没有两个产品是完全一样的,要进行公平的比较并不容易。 我们可以尝试运行类似的测试,看看我们得到了什么结果。
该测试基于Apache Kafka性能结果 。
测试使用了什么?
卡夫卡测试的一个方面是多线程性能。 在我们已经完成的测试中,使用更多的线程(取决于您拥有的CPU数量)并不好坏。 我们没有在这里进行基准测试。 所有测试都使用一个生产者。
另一个区别是,我们按时间而不是按计数定期刷新到磁盘。 能够说自己永远不会落后X毫秒通常比说600条消息更有用,因为您不知道这些消息可能在那里等待了多长时间。 对于我们的测试,我们看一下1 ms到10 ms之间的刷新周期。 在Kafka的测试中,它们似乎大约每3毫秒一次。
在每种情况下,使用的消息大小均为200字节,我们探索了一次写入1、2、5和10条消息的区别。 我们还分批尝试了200条消息,其性能类似于10条。
我们仅测试了写入SSD磁盘的持久性。 注意:编年史无经纪人。
结果
测试的结果显示了以MB / s为单位的消息速率。 这是描述性能的合理方法,因为消息大小可能会有所不同,但是您将获得相似的带宽,尤其是消息大小超过1 KB时。
设备 | 冲洗周期(毫秒) | 1个 | 2 | 5 | 10 |
ssd.ext4 | 1个 | 236 MB /秒 | 300 MB /秒 | 340 MB /秒 | 363 MB /秒 |
ssd.ext4 | 3 | 378 MB /秒 | 483 MB /秒 | 556 MB /秒 | 583 MB /秒 |
ssd.ext4 | 10 | 495 MB /秒 | 595 MB /秒 | 687 MB /秒 | 705 MB /秒 |
tmpfs | 呐 | 988 MB /秒 | 1317 MB /秒 | 1680 MB /秒 | 1847 MB /秒 |
我们还测试了“写入” tmpfs文件系统。 由于没有执行对设备的实际写入,因此速度更快。
结论
无法与Kafka进行直接比较,因为它是基于代理的系统,因为必须通过TCP发送任何消息。 编年史可以通过TCP复制,但是不是必须的,如果要最大化性能,您将使用高速网络,最快的是服务器的内存总线。
您可以运行类似的测试并获得出色的结果。 如果您需要处理数百MB / s的突发事件,那么Chronicle可能是一个更好的解决方案。
翻译自: https://www.javacodegeeks.com/2014/10/kafka-benchmark-on-chronicle-queue.html
卡夫卡队列