1.对于限流,可以先看看ratelimit包里的几个类,gateway里可以定义自己的key,来确定哪些请求算同一个请求,如根据IP来计算,之后执行一次lua脚本来计算次数。
因为没满足公司需求,所以我是自己加个限流过滤器实现GlobalFilter接口根据不同业务来组成参数key,然后自己定义RedisTemplate来执行lua脚本(lua语法只需看十几分钟例子即可上手,所以建议还是用脚本,避免原子性问题,也减少了连接redis服务器的次数)设置redis缓存时带上过期时间即可实现限流。2.过滤器其实过滤器源码都很好理解。或者也可以参考文档:里面每个过滤器都有简单的例子跟注释。