envoy&istio 对接ratelimit 实现限流之ratelimit启动

直接采用官方提供的Docker镜像进行启动

编写docker-compose.yaml 文件

version: "3"
services:
  ratelimit:
      image: envoyproxy/ratelimit:19f2079f
      command: /bin/ratelimit
      ports:
        - 8080:8080
        - 8081:8081
        - 6070:6070
      volumes:
        - ./config:/data/ratelimit/config
      environment:
        - USE_STATSD=false
        - LOG_LEVEL=debug
        - REDIS_SOCKET_TYPE=tcp
        - REDIS_URL=redis.wangpc:6379
        - RUNTIME_ROOT=/data
        - RUNTIME_SUBDIRECTORY=ratelimit
        - RUNTIME_WATCH_ROOT=false
        - CONFIG_TYPE=FILE

这里使用了极简启动,不使用statsd-exporter 进行数据采集,配置文件使用本地文件的方式。

volumes文件挂载,这里将配置文件挂载到/data/ratelimit/config/目录,挂载的路径要跟RUNTIME_* 相关环境变量进行匹配。

CONFIG_TYPE 环境变量指定 配置文件类型,可选值:FILE、GRPC_XDS_SOTW。GRPC_XDS_SOTW类型需要启动一个对应的XDS服务。后续会有示例

需要注意的是,如果CONFIG_TYPE设置为FILE,那么配置文件必须要有,如果没有会启动报错

这里就是用官方给出的一个示例

domain: mongo_cps
descriptors:
  - key: database
    value: users
    rate_limit:
      unit: second
      requests_per_unit: 500
  - key: database
    value: default
    rate_limit:
      unit: second
      requests_per_unit: 500

执行 docker-compose up -d && docker-compose logs -f 即可启动服务并查看日志。

下一篇讲envoy对接

posted @ 2024-03-07 19:58  王鹏翀  阅读(68)  评论(0编辑  收藏  举报