美文网首页
使用 toxiproxy 模拟服务读超时

使用 toxiproxy 模拟服务读超时

作者: changhr2013 | 来源:发表于2024-05-26 17:26 被阅读0次

    Ⅰ 创建服务代理模拟服务读超时

    1. 安装 toxiproxy

    brew install toxiproxy
    

    2. 启动 toxiproxy-server

    toxiproxy-server
    

    3. 使用 toxiproxy-cli 配置服务代理并添加读延迟:

    # 创建代理服务
    toxiproxy-cli create --listen localhost:8080 --upstream <真实服务地址:端口> proxy-service-name
    
    # 为 proxy-service-name 服务添加 3000ms 读延迟
    toxiproxy-cli toxic add -t latency -a latency=3000 proxy-service-name
    

    4. 访问代理服务

    将客户端访问的服务地址替换为代理服务的地址:localhost:8080,请求会发现服务有 3s 的延迟才会返回。

    toxiproxy 常见命令

    代理常用命令

    1. 创建一个新的代理
    toxiproxy-cli create --listen <listen_address> --upstream <upstream_address> <proxy_name>
    
    1. 删除一个代理
    toxiproxy-cli delete <proxy_name>
    
    1. 列出所有代理
    toxiproxy-cli list
    
    1. 检查一个代理的详细信息
    toxiproxy-cli inspect <proxy_name>
    

    toxics 常用命令

    1. 给代理添加一种 toxics
    toxiproxy-cli toxic add -t <type> -n <toxic_name> -a <attribute>=<value> <proxy_name>
    
    1. 移除代理的 toxics
    toxiproxy-cli toxic remove -n <toxic_name> <proxy_name>
    
    1. 更新代理的 toxics
    toxiproxy-cli toxic update -n <toxic_name> -a <attribute>=<value> <proxy_name>
    

    常见的 toxics 和属性

    • 添加延迟

    用于模拟网络抖动的参数。抖动指的是数据包传输延迟的变动范围。通过引入抖动,可以更真实地模拟实际网络环境中的不稳定性。
    latency: 平均延迟时间,以毫秒为单位。例如:100 表示 100ms。
    jitter: 抖动值,以毫秒为单位。例如:50 表示 50ms 的随机波动。
    这两个参数这样设置表示延迟平均值为 100ms,实际延迟将会在 50ms 到 150ms 之间随机波动。
    latency=<ms>,jitter=<ms>

    toxiproxy-cli toxic add -t latency -n <toxic_name> -a latency=100 -a jitter=50 <proxy_name>
    
    • 限制带宽

    限制最大的带宽,单位 kb/s
    rate=<KB/s>

    toxiproxy-cli toxic add -t bandwidth -n <toxic_name> -a rate=1000 <proxy_name>
    
    • 延迟连接关闭

    在连接关闭之前引入一个延迟,从而测试应用程序在面对慢速连接关闭时的表现。
    delay=<ms>

    toxiproxy-cli toxic add -t slow_close -n <toxic_name> -a delay=1000 <proxy_name>
    
    • 超时

    用于模拟网络请求超时。这种 toxic 会在指定的时间内阻塞连接,之后断开连接,从而测试应用程序在面对请求超时时的表现。
    timeout=<ms>

    toxiproxy-cli toxic add -t timeout -n <toxic_name> -a timeout=1000 <proxy_name>
    

    相关文章

      网友评论

          本文标题:使用 toxiproxy 模拟服务读超时

          本文链接:https://www.haomeiwen.com/subject/uxnqqjtx.html