一、前言
Kong的限流支持三种方式,分别是本地限流(Local)、数据库限流(Cluster)和Redis限流,这三种限流方式采用的限流算法都是计数器法。支持按照秒/分/小时/日/月/年等不同时间单位限流,并且可以组合,例如可以设置每秒最多100次并且每分钟最多1000次。
- 本地限流(Local),计数器采用的是Nginx的缓存
- 数据库限流(Cluster),将计数器保存在了数据库里,Kong支持两种数据库,PostgreSQL和Cassandra
- Redis限流,和本地限流类似,只是将缓存放到了Redis上
接下来配置Kong API网关,使用Redis限流的方式。
二、Redis配置
2.1 在Docker-composer.yml中增加Redis的配置
redis:
image: redis
container_name: redis
restart: always
networks:
- kong-net
ports:
- 6379:6379
volumes:
- ./redis/data:/data
command:
redis-server /data/redis.conf --requirepass "123321"
2.2 redis.conf配置文件
redis-server带配置文件参数启动,如redis-server redis.conf,需要redis.conf文件提前存在,把redis.conf文件放置在宿主机的./redis/data目录下,点击可以下载redis.conf
2.3 Docker-compose.yml
version: "3"
networks:
kong-net:
#external: true #docker network create --subnet=172.18.0.0/16 kong-net
driver: bridge
#volumes:
# db-data:
# external:
# name: ~/db #manually using `docker volume create --name=~/db`
services:
redis:
image: redis
container_name: redis
restart: always
networks:
- kong-net
ports:
- 6379:6379
volumes:
- ./redis/data:/data
command:
redis-server /data/redis.conf --requirepass "123321"
kong-database:
image: postgres:9.6
restart: always
networks:
- kong-net
environment:
POSTGRES_USER: kong
POSTGRES_DB: kong
POSTGRES_PASSWORD: your_pg_password
ports:
- "5432:5432"
healthcheck:

6627

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



