本文介绍: 网关通过动态路由(lb:service–name)方式代理服务时,使限流生效需满足两个条件:(1)断言中配置的路径前缀***不能***与服务名称相同,如代理的服务为producer,断言(predicates)路径中的前缀禁止配置为producer;(2)过滤器(filters)必须配置StripPrefix=1,移除前缀,保证代理的接口可以进行限流;(3)过滤器名称为RequestRateLimiter,Redis约定的名称,不可更改。常用的限流方式有3钟,IP限流、路径限流和参数限流。
1 缘起
最近补充微服务网关相关知识,学习了网关相关概念,
了解网关在微服务中存在的意义及其使命,如统一用户认证、接口权限控制、接口限流、接口熔断、黑白名单机制等,
打算通过实践的方式逐步学习网关的相关功能,同时分享网关应用系列文章。
本文分享通过网关实现接口限流,构建相关服务,帮助读者轻松应对知识考核与交流。
2 架构
本文的服务架构如下图所示,
由图可知,应用架构共有三个部分:网关、注册中心和服务,
通过网关进行接口限流,当然是在网关中做文章,实现接口的流量控制。
本套架构基于Spring原生的组件,其中,网关:SpringCloudGateway,注册中心:Eureka,服务:SpringBoot。
3 Gateway配置
使用Gateway进行接口限流,注解当然是Gateway服务,
如下配置均是对Gateway服务进行的,其他的服务各自按照需要准备好即可,
需要注意的是:其他服务与网关应该在同一个注册中心。
3.1 依赖
学技术,讲版本。
SpringBoot与SpringCloud的版本对应关系如下表:
官网查询地址:https://start.spring.io/actuator/info
3.1.1 SpringBoot
3.1.2 SpringCloud
3.1.3 注册中心&网关&Redis
3.2 创建拦截类型Bean
3.3 限流配置
4 测试
4.1 Postman接口测试
4.1.1 正常请求
4.1.2 被丢弃的请求
4.2 JMeter测试
4.2.1 正常请求
4.2.2 被丢弃的请求
5 小结
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。