kafka的并发性能怎么测试(基于kafka的延迟消息队列)

技术Apache Pulsar 与 Kafka 延迟性比较的测试过程是怎么样的本篇文章为大家展示了Apache Pulsar 与 Kafka 延迟性比较的测试过程是怎么样的,内容简明扼要并且容易理解,绝对能使你眼前一亮,

这篇文章向你展示了阿帕奇脉冲星和卡夫卡延迟比较的测试过程。内容简洁易懂,一定会让你大放异彩。希望通过这篇文章的详细介绍,你能有所收获。

测试细节将在下面描述。

测试详细信息:

Apache  Pulsar  与 Kafka  延迟性比较的测试过程是怎么样的

设定基准

为了设置基准测试,我们遵循了OpenMessaging网站上记录的步骤。应用Terraform配置后,获取以下一组ec2实例:我们根据OpenMessaging网站上提供的步骤进行了基准测试。通过应用Terraform配置,可以获得以下EC2实例集:

Apache  Pulsar  与 Kafka  延迟性比较的测试过程是怎么样的

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不支持只支持生产者或者只支持消费者的工作负载;其次,在实践中,信息系统同时为生产者和消费者服务。我们决定用生产新闻和消费新闻的实际场景来测试。

总而言之,我们用于测试的负载集如下:

Apache  Pulsar  与 Kafka  延迟性比较的测试过程是怎么样的

卡夫卡消费群和脉冲星订阅类似,允许一个或多个消费者接收一个主题的所有信息。当主题与多个消费者群/订阅相关联时,消息系统向主题提供每个消息的多个副本,或者“扇出”消息。

发布在主题上的每条消息都会发送给所有消费群/订阅。如果所有消息都发送到同一个主题,并且该主题上只有一个消费者组/订阅,则生产者价格等于消费者价格。

如果在一个主题上有两个消费者群/订阅,那么消费者率是生产者率的两倍。我们试图简化测试,所以我们采用前者,即多个消费者接收关于一个主题的所有消息。

以上内容就是阿帕奇脉冲星和卡夫卡延迟比较的测试过程是怎样的。你学到什么知识或技能了吗?如果你想学习更多的技能或丰富你的知识,请关注行业信息渠道。

内容来源网络,如有侵权,联系删除,本文地址:https://www.230890.com/zhan/146802.html

(0)

相关推荐

  • Flex Remote Object中直接使用HttpSession的方法是怎样的

    技术Flex Remote Object中直接使用HttpSession的方法是怎样的Flex Remote Object中直接使用HttpSession的方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,

    攻略 2021年11月12日
  • mybatis的sql语句如何防止注入(mybatis的sql语句如何预防注入)

    技术mybatis使用${}时sql注入的问题怎么解决这篇文章给大家介绍mybatis使用${}时sql注入的问题怎么解决,内容非常详细,感兴趣的小伙伴们可以参考借鉴,希望对大家能有所帮助。mybatis使用${}时sq

    攻略 2021年12月16日
  • 高级语言程序设计实验4-2

    技术高级语言程序设计实验4-2 高级语言程序设计实验4-2题目描述有 12 人围坐成一圈玩报数游戏,从1号人员开始顺时针报数,报到k的人员被淘汰出局;接着仍沿顺时针方向从被淘汰出局者的下一人员又重新从

    礼包 2021年11月27日
  • Spring中spring-context-indexer依赖有什么用

    技术Spring中spring-context-indexer依赖有什么用这篇文章给大家分享的是有关Spring中spring-context-indexer依赖有什么用的内容。小编觉得挺实用的,因此分享给大家做个参考,

    攻略 2021年11月9日
  • 从MySQL到ORACLE程序迁移的注意事项有哪些

    技术从MySQL到ORACLE程序迁移的注意事项有哪些本篇文章给大家分享的是有关从MySQL到ORACLE程序迁移的注意事项有哪些,小编觉得挺实用的,因此分享给大家学习,希望大家阅读完这篇文章后可以有所收获,话不多说,跟

    攻略 2021年11月16日
  • java如何终止process运行(javafor语句的执行过程)

    技术Java Process.waitFor()方法是怎样的Java Process.waitFor()方法是怎样的,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面小编将为大家详细讲解,有这方面需求的人可以来学习

    攻略 2021年12月14日