通过负载和混沌测试实现响应式服务
1. 实验运行准备
要运行相关实验,可使用之前提到的相同 shell 脚本启动 Hey 工具,建议使用两台机器。在 part2-steps-challenge/load-testing 文件夹中,有一个 run-chaos.sh shell 脚本,它能通过在合适的时间调用 Pumba 来自动化测试计划。关键在于同时启动 run-chaos.sh 和 Hey 脚本(如 run-hey-token.sh )。
2. 服务响应性测试
- 获取用户总步数计数服务 :在网络延迟阶段,服务的延迟会迅速飙升至近 20 秒,随后吞吐量急剧下降。这是因为请求在公共 API 和用户配置文件服务中排队等待响应,直至系统停止。数据库延迟在 2.5 秒到 3.5 秒之间,在实际情况中可能会暂时出现。由于负载测试,这个问题被大大放大,但即使是延迟较小的情况下,有持续流量的服务也可能出现类似行为。在数据库停机阶段,整个模拟停机期间都会出现错误,但系统并未停止运行。不过,吞吐量降低表明请求需要一些时间才能得到错误响应,其他请求则会等待超时,或者在数据库重启后最终完成。
- 获取 JWT 令牌服务 :网络延迟也会导致系统停止,但散点图的形状与获取总步数计数服务不同。这是因为该服务对于此类请求的吞吐量本身较低,且需要两个 HTTP 请求。请求会堆积,等待响应到来,延迟停止后系统会恢复运行。有趣的是,在数据库停止阶段没有观察到错误,只是因为系统在等待数据库,
超级会员免费看
订阅专栏 解锁全文
917

被折叠的 条评论
为什么被折叠?



