Toxiproxy网络状况模拟
Toxiproxy 是一个模拟网络状况的框架。它是专门为测试、CI 和开发环境工作的,支持确定性的篡改连接,但也支持随机化的混乱和定制。Toxiproxy 是你需要用测试来证明你的应用没有单点故障的工具。
Toxiproxy 的使用由两部分组成。一个用 Go 编写的 TCP 代理(这个资源库包含的内容)和一个通过HTTP与代理通信的客户端。你配置你的应用程序,使所有的测试连接通过Toxiproxy,然后可以通过HTTP操作他们的健康状况。关于如何设置你的项目,请看下面的用法。
例如,要在 Ruby 客户端对 MySQL 的响应中增加 1000ms 的延迟:
Toxiproxy[:mysql_master].downstream(:latency, latency: 1000).apply do Shop.first # this takes at least 1s end
要删除所有 Redis 实例:
Toxiproxy[/redis/].down do Shop.first # this will throw an exception end
评论