网关之多维度限流
github https://github.com/marcosbarbero/spring-cloud-zuul-ratelimit spring-cloud-zuul-ratelimit 说明 spring-cloud-zuul-ratelimit是和zuul整合提供分布式限流策略的扩展 对请求的目标URL进行限流(例如:某个URL每分钟只允许调用多少次) 对客户端的访问IP进行限流(例如:某个IP每分钟只允许请求多少次) 对某些特定用户或者用户组进行限流(例如:非VIP用户限制每分钟只允许调用100次某个API等) 多维度混合的限流。此时,就需要实现一些限流规则的编排机制。与、或、非等关系。 支持的限流粒度 服务粒度 (默认配置,当前服务模块的限流控制) 用户粒度 用户限流的实现:如果你的项目整合 Shiro 或者 Spring Security 安全框架,那么会自动维护request域UserPrincipal,如果是自己的框架,请登录成功后维护request域UserPrincipal,才能使用用户粒度的限流。未登录默认是:anonymous ORIGIN粒度 (用户请求的origin作为粒度控制) 某个IP的客户端被限流并不影响其他客户端,即API网关对每个客户端限流是相互独立的 URL 接口粒度 (请求接口的地址作为粒度控制) 以上粒度自由组合,又可以支持多种情况。