smconf

Spring Cloud Gateway 结合配置中心限流

强颜欢笑 提交于 2020-08-07 08:13:29
前言 上篇文章《Spring Cloud Gateway 限流操作》我讲过复杂的限流场景可以通过扩展RedisRateLimiter来实现自己的限流策略。 假设你领导给你安排了一个任务,具体需求如下: • 针对具体的接口做限流 • 不同接口限流的力度可以不同 • 可以动态调整限流配置,实时生效 如果你接到上面的任务,你会怎么去设计+实现呢? 每个人看待问题的角度不同,自然思考出来的方案也不同,正所谓条条大路通罗马,能到达亩的地的路那就是一条好路。 如何分析需求 下面我给出我的实现方式,仅供各位参考,大牛请忽略。 具体问题具体分析,针对需求点,分别去做分析。 需求一 “如何针对具体的接口做限流” 这个在上篇文章中也有讲过,只需要让KeyResolver返回的是接口的URI即可,这样限流的维度那就是对这个接口进行限流。 需求二 “不同接口限流的力度可以不同” 这个通过配置的方式明显实现不了,配置中的replenishRate和burstCapacity都是配置死的,如果要做成动态的那么必须的自己通过扩展RedisRateLimiter来实现。 前提是必须有一个配置列表,这个配置列表就是每个接口对应的限流数值。有了这个配置我们就可以通过请求的接口获取这个接口对应的限流值。 需求三“可以动态调整限流配置,实时生效” 这个的话也比较容易,无论你是存文件,存数据库,存缓存只要每次都去读取

分享的不仅仅是情怀

帅比萌擦擦* 提交于 2020-08-04 12:35:22
Spring Cloud构建微服务系统性源码 spring-cloud: https://github.com/yinjihuan/spring-cloud Smconf专注于分布式环境下配置的统一管理 smconf: https://github.com/yinjihuan/smconf Elastic-Job Spring Boot 自动集成,只需要一个注解即可发布Job。 elastic-job-spring-boot-starter: https://github.com/yinjihuan/elastic-job-spring-boot-starter Spring Boot中增强Mongodb的配置,多数据源,连接池等 spring-boot-starter-mongodb-pool: https://github.com/yinjihuan/spring-boot-starter-mongodb-pool Smjdbctemplate基于Spring Jdbctemplate 做的升级版 Smjdbctemplate: https://github.com/yinjihuan/smjdbctemplate Spring Boot集成Dubbox spring-boot-starter-dubbox: https://github.com/yinjihuan