这篇文章向你展示了阿帕奇脉冲星和卡夫卡延迟比较的测试过程。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。
测试细节将在下面描述。
测试详细信息:
设定基准
为了设置基准测试,我们遵循了OpenMessaging网站上记录的步骤。应用Terraform配置后,获取以下一组ec2实例:我们根据OpenMessaging网站上提供的步骤进行了基准测试。通过应用Terraform配置,可以获得以下EC2实例集:
Pulsar/BookKeeper和Kafka broker的i3.4x大型实例包含两个NVMe固态硬盘以提高性能。这两个功能强大的虚拟机拥有16个vCPU、122个GiB内存和高性能磁盘。
两个固态硬盘是脉冲星的理想设置,因为不仅可以写入两个数据流,而且数据流可以在磁盘上并行。卡夫卡也可以通过分配两个驱动器的分区来使用这两个SDD。
Pulsar和Kafka的Ansible剧本使用tuned-adm命令(延迟性能曲线)来调整低延迟性能。
调谐-adm命令详情参见https://linux.die.net/man/1/tuned-adm.
工作负载
虽然基准测试附带了一些可以立即运行的工作负载,但我们做了一些修改,以更接近Kafka在LinkedIn Engineering博客中的测试结果。定义一个新的工作负载并不难,只需创建一个带有测试更新参数的YAML文件。
看完LinkedIn的博客,你会发现他们运行的消息大小都是100字节,因为一般来说,如果消息太小(远小于100字节),测试对比结果并不明显;所有的消息队列都不擅长处理“大消息”(远远超过100字节),所以这里我们选择一个折中的大小,也就是100字节,这也是所有消息系统测试中使用的单个消息的大小。
这个大小更有利于测试消息系统本身的性能。无论每条消息的大小如何,用于测试的消息总量都是固定的。消息处理的效率越高,消息系统的性能越好。同时,网络或磁盘吞吐量限制影响测试结果的可能性越低。报文系统在处理“大报文”时的性能也是一个值得探讨的话题,但我们目前只测试“小报文”。
此外,在测试中,我们还增加了一个6分区的基准测试。因为LinkedIn测试中使用了很多6个分区,所以我们也添加了它。
LinkedIn博客既包含生产者专用工作负载,也包含消费者专用工作负载,而我们在测试中使用的工作负载同时包含生产者和消费者。原因有二。
首先,就目前的情况来看,benchmark test不支持只支持生产者或者只支持消费者的工作负载;其次,在实践中,信息系统同时为生产者和消费者服务。我们决定用生产新闻和消费新闻的实际场景来测试。
总而言之,我们用于测试的负载集如下:
卡夫卡消费群和脉冲星订阅类似,允许一个或多个消费者接收一个主题的所有信息。当主题与多个消费者群/订阅相关联时,消息系统向主题提供每个消息的多个副本,或者“扇出”消息。
发布在主题上的每条消息都会发送给所有消费群/订阅。如果所有消息都发送到同一个主题,并且该主题上只有一个消费者组/订阅,则生产者价格等于消费者价格。
如果在一个主题上有两个消费者群/订阅,那么消费者率是生产者率的两倍。我们试图简化测试,所以我们采用前者,即多个消费者接收关于一个主题的所有消息。
以上内容就是阿帕奇脉冲星和卡夫卡延迟比较的测试过程是怎样的。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。
内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/146802.html