分布式负载测试实践

本文介绍了作者实现的一个分布式定时负载测试工具,用于测试内部API在不同请求下的性能。文章详细阐述了负载测试的负载生成器和发送器、定时器、基于Raft的共识集群,以及整体架构。通过Kubernetes确保高可用性,使用Golang的goroutine模拟并发请求,报告生成采用Gonum Plot。此外,还讨论了Raft的实现、存储解决方案以及调度器的设计。
摘要由CSDN通过智能技术生成

上篇文章介绍了 Raft 共识算法,会去了解这些分布式的内容是因为工作上的需要。每个月代码总结也停了好久,用这篇文章完整总结一下前一段时间做的小工具:分布式定时负载测试,主要目的有一下几点:

  1. 测试内部开发 API 在不同请求发送速度和不同数量请求下的延迟,找出延迟过高的让开发程序员去优化。
  2. 不断增加请求的数量模拟增长的用户量,找出系统能处理请求数量的瓶颈。
  3. 监控系统在不同数量的请求下需要多少的资源:CPU, Memory等。

这个工具主要包括三部分:1. 负载测试,2. 定时器,3. 共识集群

负载测试

负载测试由两部分组成:1. 负载生成器,2. 负载发送器。这个部分的作用是将 JSON 格式的配置生成负载,然后按每秒请求数量、总共请求数量或者请求时常、通过多少个 HTTP 连接给内部系统的 API 发送负载,收集所有回复,算出每个 API 的延迟数据后,生成报告。更进一步,是可以发送按每秒请求数量,发送递增的请求数量,生成在递增请求数量的情况下,整个系统以及每个 API 在的延迟的报告。

负载生成器

这一部分最主要是要收集内部全部的 API,然后针对 API 去生成相对应 HTTP 请求需要的数据。不同公司的 API 文档不同,所以生成的方式不太一样。我们用的是 Spring,所以通过 Swagger 可以知道系统 API 的配置,用代码整合处理一下,就能生成对应的 HTTP 请求。

负载发送器

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值