首页 » 智能科技 » 13个QA带你理解线上压测的常识点

13个QA带你理解线上压测的常识点

浙江亚厦装饰股份通讯 2025-02-25 0

扫一扫用手机浏览

文章目录 [+]

接口A做接口压测,可能是1w/s的QPS, 但是A和B同时压测,可能由于数据库连接等共享资源,导致实际QPS低落。

3Q: 业务系统如何区分压测流量?即判断哪些是压测的要求,哪些是正常的要求?url上加上打标参数, 例如 http://xx?st=truehearder中打标4Q: 这个压测打标的改造和适配要中间所有做事参与吗? 改造本钱会不会有点大?

不须要全部参与。

13个QA带你理解线上压测的常识点 13个QA带你理解线上压测的常识点 智能科技

如果设计过链路跟踪系统, 则每个做事都有中间件团队供应的拦截器, 因此直接通过公共拦截器来做压测标记的识别。

13个QA带你理解线上压测的常识点 13个QA带你理解线上压测的常识点 智能科技
(图片来自网络侵删)
5Q: 识别到压测标记后, 如何担保往下贱发要求时,仍旧是压测标记的形式?

即发要求的时候已经不是同一段拦截器的代码了。
但是也要担保尽可能不改动原有的业务逻辑代码。

如果处理要乞降发下贱要求是在一个线程中完成的, 那么可以利用threadLocal。

即拦截到要求时, 将压测标记set进threadLocal中。

发送下贱要求的代码中,如果能从threadLocal中拿到压测标记,则改造url,设置进往下发的要求中

6Q: 如果我不在同一个线程中处理和发要求, 怎么办?

即我的业务代码中 做了new Thread或者ExectorPool.submit提交异步要求, 这时候业务逻辑里肯定不会涉及到threadLocal的代码, 而此时压测标记就会丢失了。

threadLocal可以用 InheriableThreadLocal, 这样如果在线程中new新的线程,则标记可以被通报下来。

如果是线程池创建异步要求, 可以用阿里的TransmittableThreadLocal。

7Q: 如果我的压测链路中 包含了外部做事的接口怎么办? 例如第三方支付、第三方短信等。

链路跟踪系统中发要求的filter中, 新增MockFilter, 如果判断是压测要求, 则直接返回mock逻辑(不建议支配mock做事, 由于支配mock做事的话,做事器本钱又得考虑,不如直接封装到mockFilter代码中)

8Q: 会对数据库产生影响的压测要求怎么办?

如果直接落库,可能会影响正常用户的要求访问, 也可能污染线上数据。

为每个生产库 天生一个影子库, 专门用来存储压测数据。

然后做过分库分表的话, 肯定有数据库的proxy,在proxy里都往压测库插入和读写。

如果没有,就扩展Spring的AbstactRoutngDataSource类, 实现一个动态的数据源,让里面可以根据压测标记进行切换。

9Q: redis、kafka等中间件对压测有什么分外处理?

除了添加统一特点的压测标记(中间件和业务不是强干系,以是可以进行特定改造)还要把稳缓存的存活韶光要设置短一点。

10Q: 压测结束时,如何避免对数据库连续产生影响?

把稳不要触发 数据源的init-method方法, 当真正实行压测的时候再建议会话连接。
各种超期韶光也要把稳设置, 尽快打仗压测对组件的影响。

11Q: 压测数据怎么布局?一个个手动拼数据参数,然后让测试同学发送吗?

弗成,如果业务有改动,参数很随意马虎对不上,同时组装过程耗时也会非常久。

建议从线上直接dump最近的要求数据,这样可担保参数没有变革。

同时做一些脱敏和改动处理。

12Q: 怎么完全设计这个压测系统的架构?包含哪些角色

该问题参考《超大流量分布式系统架构办理方案》一书中给出的方案,也可以有其他方案。

压测manager做事, 供应给压测掌握者查看和利用的。
可以读取mysql数据库获取压测结果情形,或者进行调度指令的下发等。
taskService做事,用于处理调度指令,实行定时调度、即时调度等行为。
Agent 压测要求发送客户端。
根据taskService的指令进行发送DataFactoy,给agent供应脱敏、修正后的压测数据。
MQ, 吸收agent压测要求的结果,堆积到行列步队里供应给DataCollect消费。
DataCollect, 压测结果消费者, 将结果写入到数据库MYSQL。
注册中央,用于管理和注册上面这些做事。
Detecotr, 流量检测和干预器,可以根据情形即时调度agent的发送速率。

13Q: 怎么仿照实际用户的要求发送? 由于实际场景该当是多个不同ip的用户访问进来才对。
apache HttpComponents的httpclient包Java11的异步httpclient, 支持HTTP/2, 支持用reactive stream。

关注我,第一韶光理解华为云新鲜技能~

标签:

相关文章

售前必备常识与能力之常见问题分析

方案撰写1 常见问题低级缺点:方案中存在错别字、图片没有更新、标题字体/大小不一致,格式不对称、先容内容顺序错乱等。思路匮乏:素材...

智能科技 2025-02-25 阅读0 评论0

冲刺年尾行情 银行电子等板块最受追捧

今年以来,受供给侧改革持续推进、宏不雅观流动性变革等成分影响,构造性行情主导A股市场运行。上半年,受到估值修复预期刺激,家电行情风...

智能科技 2025-02-25 阅读0 评论0