消息队列RocketMQ性能测试案例

1. 消息队列RocketMQ性能测试案例

1.1 RocketMQ测试分析

客户场景,信息共享交换平台:
1.交换平台需支持每秒万级别数据传输
2.实现跨路段、跨部门、跨行业、跨区域信息即时共享,做到高可靠、低延迟

1.png

客户现场展示场景设计思路:
1.针对性的编写一套JAVA代码来支撑本次MQ性能POC验证。
2.选择合适规格的单台ECS,在单个TOPIC下运行多线程代码实现和MQ的订阅发送,统计1分钟内订阅和发送的数据交换TPS情况。
3.考虑POC也要符合客户实际生产场景中MQ使用逻辑,ECS应运行4个独立的JAR包,两对JAR包交叉经过MQ进行数据交换。
4.消息体内的内容应打印到屏幕,通过消息轨迹验证消息的被消费情况。
5.验证结果:客户指定场景下8线程异步,1分钟TPS在10K以上。

1.2 创建资源

本章节详细描述如何创建消息队列 RocketMQ 版的资源。

1.2.1 创建RocketMQ实例

1.登录Apsara Stack控制台。
2.在左侧导航栏中单击中间件产品 > 消息队列访问管理控制台界面。

2.png

3.在消息队列页面,选择区域与部门后,单击MQ,进入MQ控制台。

3.png

4.单击左侧导航栏概览后,在概览页面中,单击创建实例。
5.在创建实例对话框,选择实例类型,并输入实例名和描述,然后单击确认。

4.png

说明: 创建完实例后,单击左侧导航栏实例详情,可以查看创建实例的Topic数上限、消息发送TPS上限、消息订阅TPS上限和TCP协议接入地址等。

1.2.2 创建 Topic

Topic 是消息队列 RocketMQ 版里对消息的一级归类,例如可以创建 Topic_Trade 这一 Topic 来识别交易类消息,消息生产者将消息发送到 Topic_Trade,而消息消费者则通过订阅该 Topic 来获取和消费消息。
创建Topic要注意一下几点:

  • Topic 不能跨实例使用,例如在实例 A 中创建的 Topic A 不能在实例 B 中使用。
  • Topic 名称必须在同一实例中是唯一的。
  • 您可创建不同的 Topic 来发送不同类型的消息,例如用 Topic A 发送普通消息,Topic B 发送事务消息,Topic C 发送定时/延时消息。

1.在控制台左侧导航栏,单击 Topic 管理。
2.在 Topic 管理页面上方选择刚创建的实例,单击创建 Topic 按钮。

5.png

3.在创建 Topic 对话框中的 Topic 一栏,输入 Topic 名称,选择该 Topic 对应的消息类型,输入该 Topic 的备注内容,然后单击确定。

1.2.3 创建 Group ID

创建完实例和 Topic 后,您需要为消息的消费者(或生产者)创建客户端 ID ,即 Group ID 作为标识。

  • Group ID 必须在同一实例中是唯一的。
  • Group ID 和 Topic 的关系是 N:N,即一个消费者可以订阅多个 Topic,同一个 Topic 也可以被多个消费者订阅;一个生产者可以向多个 Topic 发送消息,同一个 Topic 也可以接收来自多个生产者的消息。

1.在控制台左侧导航栏,单击 Group 管理。
2.在 Group 管理页面上方选择刚创建的实例,然后选择TCP协议 > 创建Group ID 。本文以 TCP 协议为例。

image.png

3.在创建 Group ID 对话框中,输入 Group ID 和描述,然后单击确认。

1.3 场景落地

1.准备p1,c1,p2,c2双发送双订阅应用小程序,p1、p2小程序参考“第二章节”生产者异步发送消息代码,c1、c2小程序参考“第二章节”消费者集群订阅消息代码
p1-8081.jar
c1-8083.jar
p2-8082.jar
c2-8084.jar
2.通过Xshell连接到专有云ops1环境,把准备的4个jar包上传至一台16c32gECS服务器上

7.png

3.同时在该目录下编写启动4个jar包的start.sh脚本:
#!/bin/bash
nohup java -jar p1-8081.jar &
nohup java -jar p2-8081.jar &
nohup java -jar c1-8081.jar &
nohup java -jar c2-8081.jar &
4.编写停用4个jar包的stop.sh脚本:

4371F130-02EE-48f3-B11A-3A5E26C5DC78.png

5.编写请求消息队列2个发送和2个订阅接口的curl脚本:
#!/bin/bash
curl http://192.168.0.150:8081/echo-sync-final-send
curl http://192.168.0.150:8082/echo-sync-final-send
curl http://192.168.0.150:8083/echo-final-mq
curl http://192.168.0.150:8084/echo-final-mq
6../start.sh执行启动4个jar包,通过tail -f nohup.out查看启动日志,每个jar包启动完成日志如下:

8.png

7.通过ps -ef | grep jar确认4个jar是否在ECS服务器运行,有如下图则表示4个应用小程序运行正常:
9.png

8../curl.sh执行请求2个消息发送和2个消息订阅接口,请求之后我们查看一下程序后台日志发现代码打印的消息发送和消息订阅的日志不停的在刷,截取单条消息发送日志如下:

10.png

截取单条消息订阅日志如下:

11.png

1.4 消息查询

如遇消息消费有问题,则可通过查询具体发送的消息内容来排查问题。消息队列 RocketMQ 版提供了三种消息查询的方式,分别是按 Message ID、Message Key 以及 Topic 查询。

1.4.1 查询方式说明

三种查询方式的特点和对比如下表所述。
表1:查询方式对比
消息投递状态.png

1.4.2 推荐查询过程

推荐按照以下流程查询消息。

12.png

1.4.3 查询步骤

1.登录MQ控制台。
2.在左侧导航栏,单击消息轨迹。
3.在消息轨迹页面,您可单击以下任一页签,然后按页面提示输入相应信息,再单击搜索按钮来查询消息。

  • 按 Message ID 查询

按 Message ID 查询消息属于精确查询,您输入 Topic 和 Message ID 即可精确查询到任意一条消息。因此,为了尽可能精确地查询,建议在发送消息成功后将 Message ID 信息打印到日志中,方便问题排查。

13.png

  • 按 Message Key 查询

消息队列 RocketMQ 版根据您设置的 Message Key 建立消息的索引信息,当您输入 Key 进行查询时,消息队列 RocketMQ 版根据该索引即可匹配相关的消息返回。

14.png

  • 按 Topic 查询

按 Topic 查询一般用在 Message ID 和 Message Key 都无法获得的情况下,根据 Topic 和消息的发送时间范围,批量获取该时间范围内的所有消息,然后再找到关心的数据。

15.png

4.在操作栏中单击消息详情,可查看到轨迹的简要信息,主要是消息本身的属性以及接收状态的信息。

16.png

5.在展开的区域中,单击查看轨迹即可查看完整的链路图。下图示例为在 TCP 协议下,按 Message ID 查询普通消息的轨迹。

17.png

对于 Message Key 和 Topic 查询方式,如果匹配到多条轨迹,可以进行上下翻页,查看比对轨迹数据。

1.4.4 查询结果说明

您可以在控制台的消息查询页面看到查询到的消息。直接显示的信息包含 Message ID、Tag、Key 和存储时间。此外,您还可以在每一行消息操作列下载消息内容、查询信息轨迹以及查看消息详情。
投递状态是消息队列 RocketMQ 版根据各个 Group ID 的消费进度计算出的结果,投递状态的信息如下表所示。
表 2: 消息投递状态
表2.png

1.4.5 消费验证

消息队列 RocketMQ 版提供了消费验证功能,该功能可以将指定消息推送给指定的在线客户端,以检测客户端消费该消息的逻辑和结果是否符合预期。
说明: 消费验证功能仅仅是用于验证客户端的消费逻辑是否正常,并不会影响正常的收消息流程,因此消息的消费状态等信息在消费验证后并不会改变。

1.5 查看消息生产数据

可供查看的消息生产数据是某个Topic在一个时间段内从Broker接收的消息的总量或者TPS。
1.登录MQ控制台。
2.在左侧导航栏,单击资源报表。
3.在资源报表页面,单击消息生产页签。
4.在Topic一栏,选择Topic,并指定其他信息,然后单击搜索。
字段说明:

  • 采集类型:分为总量和TPS。总量提供该周期内Topic接收的消息总量;TPS提供每个周期内该Topic接收消息的平均TPS。
  • 采集周期:包括1分钟、10分钟后、30分钟、1小时。采集周期决定了数据采集的时间间隔,周期越短,采集点越密集,消息消费数据越详细。
  • 时间范围:RocketMQ最多可以提供最近三天之内的消息的生产查询。

查询结果以图表的形式显示

18.png

 

19.png

1.6 查看消息消费数据

可供查看的消息消费数据是某个Topic在一个时间段内投递给某个Group ID的消息的总量或TPS。
具体操作步骤如下:
1.登录MQ控制台。
2.在左侧导航栏,单击资源报表。
3.在资源报表页面,单击消息消费页签。
4.在Group ID和Topic栏,分别选择您要查询的Group ID和Topic。
5.指定其他信息,然后单击搜索。
字段说明:

  • 采集类型:分为总量和TPS。总量提供每个周期内该Topic投递给该Group ID的消息总量,TPS提供每个周期内该Topic投递给该Group ID消息的平均TPS。
  • 采集周期:包括1分钟、10分钟后、30分钟、1小时。采集周期决定了数据采集的时间间隔,周期越短,采集点越密集,消息消费数据越详细。
  • 时间范围:RocketMQ最多可以提供最近三天之内的消息的消费查询。

查询结果以图表的形式显示

20.png

 

21.png


原文链接
本文为阿里云原创内容,未经允许不得转载。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514616.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

揭秘百度微服务监控:百度游戏服务监控的演进

导读:臣闻防患于未然者易,除患于已然者难 —— 明马文升《添风宪以抚流民疏》作为一个程序员,是否有留意到每逢节假日在各大景区时有程序员打开电脑紧急处理线上问题?如果线上出现大量的报警,这时我们该如何判断是自身…

「更高更快更稳」,看阿里巴巴如何修炼容器服务「内外功」

作者 | 守辰、志敏来源|阿里巴巴云原生公众号 11 月 11 日零点刚过 26 秒,阿里云再一次抗住了全球最大的流量洪峰。今年 双11 是阿里经济体核心系统全面云原生化的一年,相比去年核心系统的上云,云原生化不仅让阿里享受到了云计算技术成本优化…

云原生应用架构转型不好做?阿里云这个平台让你一步到位!

云原生实践带来的挑战 阿里云云原生为企业提供了完善的容器服务、函数计算、微服务体系、中间件体系。每个服务都有伸缩性、弹性和组合性,通过产品选择或组合搭建,能轻松完成应用与运行环境解耦,和传统应用研发模式具有较大差异。从传统研发…

对话MathWorks:解读MATLAB技术生态圈与未来趋势

37年前的1984年,MathWorks公司在美国加州成立。在成立的第14个年头,销售额就达到了一个亿美金。如今MathWorks公司在全球有超过5000名员工分布在34个办公室,2020年的销售额已达12亿美金。众所周知,MathWorks手握MATLAB和Simulink两…

如何基于DataWorks构建数据中台?

一 新零售的商业模式 一家新零售企业如果要做数据中台的话,首先很重要的一点就是一定要懂业务。之前有位同学问过我,说数据中台很难建。在我看来,数据跟业务是息息相关的,在构建整个数据中台的时候,首先要对业务有一个…

浪潮云海OS再度登顶 SPEC Cloud性能得分「全球第一」

近日,国际标准性能评测组织SPEC(Standard Performance Evaluation Corporation)公布最新云计算性能 Cloud IaaS 2018 Benchmark 测试成绩,在同规模测试场景下,浪潮云海OS再次刷新世界纪录,性能得分全球第一…

降本增效利器!趣头条Spark Remote Shuffle Service最佳实践

王振华,趣头条大数据总监,趣头条大数据负责人曹佳清,趣头条大数据离线团队高级研发工程师,曾就职于饿了么大数据INF团队负责存储层和计算层组件研发,目前负责趣头条大数据计算层组件Spark的建设范振,花名辰…

道旅:使用ARMS做业务监控数据清洗

作者:折松,阿里云解决方案架构师 深圳市道旅旅游科技股份有限公司(简称:道旅)是一家总部位于中国的全球酒店资源批发商。自2012年成立以来,道旅凭借其全球优质的直签产品和丰富的第三方产品,以…

日分发量破8.6亿,OPPO如何帮助开发者突破流量增长瓶颈

编辑 | 宋慧 出品 | CSDN云计算 头图 | OPPO软件商店开发者沙龙现场图 7月20日,OPPO软件商店开发者沙龙在北京成功举行,沙龙以「破解流量密码 解锁增长关键」为主题,基于应用分发行业洞察,围绕流量增长、服务赋能、开发者出海、本…

阿里 双11 同款流控降级组件 Sentinel Go 正式 GA,助力云原生服务稳稳稳

作者 | 赵奕豪(宿何) Sentinel 开源项目负责人来源|阿里巴巴云原生公众号 前言 微服务的稳定性一直是开发者非常关注的话题。随着业务从单体架构向分布式架构演进以及部署方式的变化,服务之间的依赖关系变得越来越复杂,业务系统…

AI一体机高速自由流收费稽核解决方案

自2019年两会政府工作报告中明确“深化收费公路制度改革,两年内基本取消全国高速公路省界收费站,实现不停车快捷收费,减少拥堵,便利群众”政策以来,全国高速公路取消省界收费站的工作快速推进。在撤站实现开放式的收费…

重磅!大数据知识总结和调参技巧开放下载了

大数据被誉为“新石油”,如何管理并洞悉数据的价值,是企业未来发展的核心竞争力。进入大数据时代,数据规模与日俱增。另一方面,数据仓库的市场份额被其他技术蚕食,比如大数据、机器学习和人工智能。这种趋势给我们造成…

2020阿里云双12-企业飞天会员年终盛典全攻略

2020阿里云双12大促活动于12月09日正式开启,至12月31日结束。此次双12阿里云将有哪些亮点活动,此篇文章将一一为大家阐述。 今年阿里云双12将重点服务企业用户,在大促期间,企业实名认证用户可加入阿里云飞天会员,享受…

工商银行基于 Dubbo 构建金融微服务架构的实践-服务发现篇

作者 | 张远征来源|阿里巴巴云原生公众号 导读:Dubbo 作为分布式微服务框架,众多公司在实践中基于 Dubbo 进行分布式系统架构。重启开源后,我们不仅看到 Dubbo 3.0 最新的 Roadmap 发布,而且还看到阿里在自身电商开始推进 Dubbo 和…

Kubernetes 诞生七年,凭什么成为主流?

来源 | CSDN头图 | 付费下载于 IC photo引言作为一款开源的容器编排引擎,始于2014年的Kubernetes一经推出就受到了开发者的喜爱,在此之前,从来没有人想过能有一个同时被所有云供应商支持的分布式应用。在Kubernetes里,用户可以轻松…

贡献的 PR 数仅次于阿里团队,我是如何成为 Spring Cloud Alibaba committer 的?

Spring Cloud Alibaba 开源两年时间,已经成为了最受开发者关注、最活跃的 Spring Cloud 实现。它之所以能这么快的受到开发者的认可,一方面是它生态中的组件丰富且经过阿里 双11 验证,但更重要的还是社区中各位贡献者、广大用户的贡献和反馈。…

专访涯海:阿里云中间件是如何支撑双11的?

以下是本次访谈关键内容的整理。 点击这里可前往“2020阿里双11技术全观”专题查看访谈视频回放 播报员: *各位开发者朋友们,大家好。欢迎收看我们这一期的双11技术播报栏目,我是你们的播报员莫孤。今天我们依然还是双11技术播报的特别篇&a…

你和大厂的匹配度多高?立马去C认证测试一下,提前备考大厂

一年一度的秋招要开始了,又有人开始慌了。前段时间在技术沙龙群里跟同学们聊天,大家集体吐槽今年求职内卷的严重。投了很多简历却石沉大海,秋招快开始了自己却还毫无头绪,想去大厂但是完全不知道如何下手。在这样的焦虑情绪下&…

排查指南 | 当 mPaaS 小程序提示“应用更新错误(1001)”时

问题描述:APP 启动 mPaaS 小程序弹出 toast 信息:"应用更新错误"。 原因分析 调用MDS小程序更新接口之后,没有拉到对应的小程序信息,就会返回1001。 mPaaS 框架在打开一个小程序应用前,首先需要获知该小程…

你想知道的容器混合云问题,答案都在这里!

作者:范桂飓来源:CSDN 博客前言今天笔者有幸受邀参加了亚马逊云科技中国峰会(上海站)的 “开发者之家《观点碰撞》” 活动,与诸位亚马逊云科技的技术专家们一同对话 “容器混合云会是未来的答案吗”?坦诚地…