API Gateway/API 网关(三) - Kong的使用 - 限流rate limiting(redis)

一、前言

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:
      
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值