首页 欧洲联赛 正文

Rocketmq-2:性能测试方案-必威体育betwayAPP_betway体育|首页

原创;微信大众号:千里行走;

受限图片巨细约束,有些图片不是很明晰,能够到微信大众号检查;

目录

(1).功能测验计划

1.抱负测验计划

2.实践测验计划论文怎样写&测验成果

(2).测验机型&资源分配

(3).相关监测数据

1.全体概览

2.broker-master-1节点监控数据

3.broker-slave-1节点监控数据

4.consumer1节点监控数据

5.施压机(producer)监控数据

(4).终究选型

(5).总结

1.不需求忧虑rocketmq的处理才能/TPS简略预算办法

2.不需求运用sync_master

3.咱们为什么挑选async_master,async_flush

4.咱们需求让开发同学低本钱的运用rocketmq

5.以毛利后也会将rocketmq容器化

正文

(1).功能测验计划

1.抱负测验计划

重视qps和lantency即可,音讯丢掉需求运用者在开发时处乌兰托娅理,比方音讯发送加剧试机制(这里有考究,也不是随意写的,也涉及到rocketmq-broker的流控机制,下一篇聊)。

但实践上,不可能这样操作,原因:机器资源占用太多,最主要的是时刻不允许。

2.实践测验计划&测验成果

(2).测验机型&资源分配

悉数运用阿里云的ecs.sn夏获鸟1ne.xlarge机型,都是4core8G,相对来说性价比最高,网络有加强,内核参数有优化,如下:

运用rock低微etmq默许供给的benchmark脚本东西进行压测。

topic:BenchmarkTest

queue:1024/broker

(3).相关监测数据

以测验用例BT-P&C-MSG-SIZE1024-2b鑫rokerM废柴aster-2BrokerSlaves-0003-1为例:

2个brokerMaster, 2个brokerSlave,且broker装备为:

brRocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 okerRole = ASYNC_MASTER

flushDiskType Rocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 = ASYNC_FLUSH

1.全体概览願い

施压机音讯发送状况:

顾客消费状况:

broker-master-1节点的iostat:

broker-slave-1节点的iostat:

2.broker-master-1节点监控数据

3.broker-slave-1节点监控数据

4.consumer1节点监控数据

5.施压机(producer)监控数据

(4).终究选型

机器满意选型:

磁盘选型:

这里有一个问韩国时刻题:实践上不需求这么大的盘,100GB的SSD满足用了,后续会替换为100GB青草在线的SSD,本钱更合算,并且TPS和lantency会愈加美丽;音讯发送的重试次数会99000韩元大幅削减。

附,官方关于资源的散布反应:

(5).总结

1.不需求忧虑rocketmq的处理才能/TPRocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 S简略预算办法

关于TPS的核算很简略(async_master,async_flush):

在运用物理磁盘的条件下,max(broker-master单节点 TPS)=物理磁盘的最大写入速度/音讯巨细=max(rocketmq producer send TPS)

在运用lgdSSD盘的条件下,max(broker-master单节点 TPS)=SSD盘的最大写入速度/音讯巨细=max(rocketmq producer send TPS)

别的,还要考虑带宽约束,三者大致联系:tps(物理磁盘)

我运用1KB的音讯测验其完成已很大了,实践出产环Rocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 境Rocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 不会Rocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 这么用,音讯体都是尽可能小的。

2.不需求运用sync_master

会严峻下降TPS,我的测验成果是直接降了一个数量级;并且也没有必要,leo除非是金融等Rocketmq-2:功能测验计划-必威体育betwayAPP_betway体育|主页 高要求的场景有必要确保副本,敞开后多挂几组broker-master/slave,添加rock帆布鞋etmq的并行吞吐才能,进步TPS。

3.咱们为什么挑选async_master,async_flush

很简略,不是金融等高要求场景,并且这种形式下的可用性其实也是十分高的,更重视TPS,且一起重视本钱。

但要留意条件是事务code要正确处理音讯重试,消倏息重复消费,这个不是rocketmq确保的,今后会聊一聊这方面。

rocketmq的async_master和async_flush相似于kafka的acks,相似但不等价。

4.咱们需求让开发同学低本钱的运用rocketmq

咱们的做法是自己开发了一个结构,完全是注解是开发,将rocketmq的producer和consumer封装到结构里,装备都在apollo,开发同学运用时直接加几个注解即可完结producer,consumer的目标实例化,十分便利,不会犯错。

并且还集成了prometheus,能够将producer和consumer的发送全程,消费全程监控起来,比方TPS过高时,会触发rocketmq的流控,直接将msg写入恳求回绝且不会重试,此刻要在结构中自己完成重试机制,且参加prometheus监控:

直接监控到节点的进程,哪个JVM实例发作rocketmq运用反常一刘一鸣变形记目了然。

prometheus其他监控:

现在暂时只开发了两待产包最全清单个维度:音讯发送全程监控(粒度到进程),音讯堆积数监控(关于rocketmq集群,粒度到broker的queu漂流瓶e;关于事务jvm,粒度到进程)。

十分有助于rocketmq的正确运用,和问题发现。

另:

官方也有一个rocketmq的prometheus-exporter(可是维度不全),也会运用:

https://github.com/apache/rocketmq-externals/tree/master/rocketmq-prometheus-exporter

5.今后也会将rocketmq容器化

放入K8S自带看护,正在进行中。

相关推荐

  • 暂无相关文章