全链路压测实战 30 讲
高楼
盾山科技 CEO,7DGroup 创始人
21053 人已学习
新⼈⾸单¥59
登录后,你可以任选4讲全文学习
课程目录
已完结/共 38 讲
全链路压测实战 30 讲
15
15
1.0x
00:00/00:00
登录|注册

24 | 压测平台:如何改造分布式调度平台?

你好,我是高楼。
这节课,我们继续来讲分布式压测平台的改造。在上一讲,我们已经知道了对象存储和性能监控的实现步骤,这节课,我们来看看分布式调度的改造。

分布式调度平台的选型

在 Java 技术栈中,传统的任务调度实现方案,比如 Quartz、Timer,都存在一些问题,例如:
仅单点,不支持集群任务分发;
无法统计任务执行数据;
没有监控任务执行状态;
没有任务异常告警;
没有 web 后台管理。
但在如今的全链路压测场景中,大部分的压测平台都是分布式架构,它对任务调度的需求也更高,例如:
当同一个压力机或多个压力机的下发任务互斥时,需要做到统一的调度;
下发的任务需要支持高可用、实时监控、异常告警等功能;
压力机集群需要支持动态、协同进行压测,能应付高并发海量流量的场景;
需要统一的管理并能够追踪各压力机任务执行结果,需要快速记录各种任务的属性数据。
也就是说,传统的任务调度实现方案已经不能满足全链路压测平台的需求了。这时候,我们就需要一个分布式任务调度平台。目前业界比较主流的中间件有哪些呢?
目前业界比较主流的中间件主要有Elastic-JobXXL-JOB和 Quartz 三种。由于 XXL-JOB 的热度足够(目前关于 XXL-JOB 的 GitHub Stars 有 20.1k 个,登记在用的公司有 446 个),另外它的开发迅速、学习简单、轻量级、易扩展,这些特性都挺适合我们这个全链路压测项目的。综合考虑后,最后我们选择了 XXL-JOB
确认放弃笔记?
放弃后所记笔记将不保留。
新功能上线,你的历史笔记已初始化为私密笔记,是否一键批量公开?
批量公开的笔记不会为你同步至部落
公开
同步至部落
取消
完成
0/2000
荧光笔
直线
曲线
笔记
复制
AI
  • 深入了解
  • 翻译
    • 英语
    • 中文简体
    • 中文繁体
    • 法语
    • 德语
    • 日语
    • 韩语
    • 俄语
    • 西班牙语
    • 阿拉伯语
  • 解释
  • 总结

本文深入介绍了如何改造分布式调度平台,以满足全链路压测平台的需求。首先分析了传统的任务调度实现方案存在的问题,以及全链路压测平台对任务调度的高需求。随后选择了XXL-JOB作为分布式任务调度平台,并详细解释了其基本概念和架构。文章阐述了分布式调度平台的落地思路,包括流量录制和流量回放的主要过程,并提供了搭建XXL-JOB调度平台和创建执行器的实践步骤。通过分析问题、选择解决方案、落地实践等环节,全面介绍了改造分布式调度平台的过程。文章还介绍了如何创建流量录制任务和使用子任务,以及如何解决任务间数据传递的问题。整体而言,本文内容丰富,适合需要深入了解分布式调度平台改造的技术人员阅读。文章还强调了分片任务和通用RESTful API支持的重要性,并提出了在全链路分布式流量平台改造中需要牢记的关键原则。通过本文的总结,读者可以快速了解到分布式调度平台改造的关键技术特点和实践原则,为实际应用提供了有益的参考。

仅可试看部分内容,如需阅读全部内容,请付费购买文章所属专栏
《全链路压测实战 30 讲》
新⼈⾸单¥59
立即购买
登录 后留言

全部留言(1)

  • 最新
  • 精选
  • Geek_133b54
    高老师,你们之前用gor丢数据严重不,我这发现丢数据情况还挺多,我把源码下下来打包测也会丢部分数据,有一部分原因是因为body长度和content-length不一致,导致gor认为本次请求没有完成,另一部分还没发现原因出在哪?

    作者回复: goreplay 与TcpCopy的区别在于,不是直接原包拷贝哦,而是重新构建 http 协议级别的请求,如果 HTTP 请求头里面的 Content-Length 不等于实际的 Body 大小,那么 Gor 识别认为其请求未结束,录制下来的请求文件自然是有缺失的。

    2021-12-11
    1
收起评论
显示
设置
留言
1
收藏
沉浸
阅读
分享
手机端
快捷键
回顶部