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对接