如何实现Rocketmq拉取pull消息分页数目测试

这篇文章主要介绍了如何实现Rocketmq拉取pull消息分页数目测试,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。

一 机器部署

1、机器组成

7台机器,均为16G内存

每台服务器均有4个cpu,2核

如何实现Rocketmq拉取pull消息分页数目测试

2、运行环境配置

如何实现Rocketmq拉取pull消息分页数目测试

3、刷盘方式

每台机器master机器均采用异步刷盘方式

如何实现Rocketmq拉取pull消息分页数目测试

如何实现Rocketmq拉取pull消息分页数目测试

二 性能评测

1、评测目的

   测试pull消费模式,单次批量拉消息最大条数。

2、评测指标

    批量拉取消息最大条数msgExtSize

    自定义配置 最大拉取条数 maxnums

3、评测逻辑

  (1)先发送10000条消息,等待消息全部发送完毕,然后启动consumer端消费消息。

    (2)配置maxnums的值分别为 1、3、5、8、16、20、24、27、31、32、33、34、35、36、54、80、100,然后对比每次拉取消息的msgExtSize条数。

   (3)记录每次批量拉取消息的最大条数,即可测试出批量拉消息最大条数。

    (4)步骤3找出批量拉消息最大条数后,在这个数值前后再设置连续数字,进一步验证此数值。

4、评测过程

    (1)第一组:开启20个线程,每个线程发送3000条数据,总共向topic名称为 “pullTest”发送60W条消息(消息量越多越好,consumer端消费速率很快,故发送消息的数据量越多越好,这样以便于看出效果)。

    消息发送如下:

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=1的消费记录,输出的msgExtSize=1

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=3的消费记录,输出的msgExtSize=2

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=5的消费记录,输出的msgExtSize=4

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=8的消费记录,输出的msgExtSize=7

如何实现Rocketmq拉取pull消息分页数目测试

设置maxnums=16的消费记录,输出的msgExtSize=15

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=20的消费记录,输出的msgExtSize=19

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=24的消费记录,输出的msgExtSize=23

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=27的消费记录,输出的msgExtSize=26

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=32的消费记录,输出的msgExtSize=31

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=36的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=54的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=80的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=100的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       分析以上各条件的测试数据可知: 批量拉消息最大条数的条数是32。

       (2)第二组:在拉取消息的最大条数 前后的数字,细粒度的再次测试。

       设置maxnums=33的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=34的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=35的消费记录,输出的msgExtSize=32

如何实现Rocketmq拉取pull消息分页数目测试

       设置maxnums=31的消费记录,输出的msgExtSize=30

如何实现Rocketmq拉取pull消息分页数目测试

    进一步分析测试数据,批量拉消息最大条数的条数是32。

    分析结果如下:

自定义最大拉取数
(期望)
批量拉消息最大条数
(实际)
1 1
3 2
5 4
8 7
16 15
20 19
24 23
27 26
31 30
32 31
33 32
34 32
35 32
36 32
54 32
80 32
100 32

二 评测结果

   1、如下测试结论,基于消息存储于内存的场景(而非消息存储于磁盘的场景)。

   在Pull消费场景下,令 maxA = 自定义最大拉取条数, maxB=实际批量拉消息最大条数, 则得出如下结论:

    (1)若maxA = 1, 则maxB = 1

    (2)若maxA <= 32, 则 maxB = maxA - 1

    (3)若maxA > 32, 则maxB = 32 

 2、查阅RocketMQ配置文件,如果消息存储于磁盘,则实际批量拉消息最大条数是为8(并非期望的数值32),奈何此种测试场景不太好重现,暂未测试,留待后续进一步重现测试。

感谢你能够认真阅读完这篇文章,希望小编分享的“如何实现Rocketmq拉取pull消息分页数目测试”这篇文章对大家有帮助,同时也希望大家多多支持编程之家,关注编程之家行业资讯频道,更多相关知识等着你来学习!

相关文章

今天小编给大家分享一下excel图案样式如何设置的相关知识点,...
这篇文章主要讲解了“win10设置过的壁纸如何删除”,文中的讲...
这篇“Xmanager怎么显示远程linux程序的图像”文章的知识点大...
今天小编给大家分享一下xmanager怎么连接linux的相关知识点,...
这篇“如何重置Linux云服务器的远程密码”文章的知识点大部分...
本篇内容介绍了“Linux云服务器手动配置DNS的方法是什么”的...