SpringCloud-Zuul高并发请求下的限流处理-创新互联

高并发的情况肯定是实际场景中经常碰到的情况,那么这种情况下限流措施肯定是必须的,本文我们就来看看zuul中限流的处理

创新互联主要从事网站设计制作、成都网站设计、网页设计、企业做网站、公司建网站等业务。立足成都服务郴州,十多年网站建设经验,价格优惠、服务专业,欢迎来电咨询建站服务:028-86922220

高并发的限流处理

1.创建项目

  创建一个SpringCloud项目

SpringCloud-Zuul高并发请求下的限流处理

2.添加依赖

  必须要添加 ratelimit依赖

<dependencies>
    <dependency>
        <groupId>org.springframework.boot</groupId>
        <artifactId>spring-boot-starter-web</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-eureka</artifactId>
    </dependency>
    <dependency>
        <groupId>org.springframework.cloud</groupId>
        <artifactId>spring-cloud-starter-zuul</artifactId>
    </dependency>
    <dependency>
        <groupId>com.marcosbarbero.cloud</groupId>
        <artifactId>spring-cloud-zuul-ratelimit</artifactId>
        <version>1.3.4.RELEASE</version>
    </dependency>
</dependencies>

3.配置文件

  在配置文件中添加限流的属性,分为具体限流和全局限流

server.port=9030
# eureka注册中心的配置
eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/

# 定义的两个路由规则
zuul.routes.e-book-product.path=/product/**
zuul.routes.e-book-product.serviceId=e-book-product
zuul.routes.e-book-order.path=/order/**
zuul.routes.e-book-order.serviceId=e-book-order

3.1 全局限流

  针对每一个服务都有效果

#全局配置限流
zuul.ratelimit.enabled=true
##60s 内请求超过 3 次,服务端就抛出异常,60s 后可以恢复正常请求
zuul.ratelimit.default-policy.limit=3
zuul.ratelimit.default-policy.refresh-interval=60
##针对 IP 进行限流,不影响其他 IP
zuul.ratelimit.default-policy.type=origin

分别启动product和order两个服务,然后启动网关服务,访问测试如下
product服务:
SpringCloud-Zuul高并发请求下的限流处理

一分钟访问的第四次

SpringCloud-Zuul高并发请求下的限流处理

order服务:正常访问

SpringCloud-Zuul高并发请求下的限流处理

一分钟内访问的第四次
SpringCloud-Zuul高并发请求下的限流处理
全局限流配置对每个服务都有效果

3.2 局部限流

  针对特定的服务指定的限流策略

# 局部限流:针对某个服务进行限流
##开启限流
zuul.ratelimit.enabled=true
##60s 内请求超过 3 次,服务端就抛出异常,60s 后可以恢复正常请求
zuul.ratelimit.policies.e-book-product.limit=3
zuul.ratelimit.policies.e-book-product.refresh-interval=60
##针对某个 IP 进行限流,不影响其他 IP
zuul.ratelimit.policies.e-book-product.type=origin

以上配置只针对e-book-product的服务一分钟内最多访问3次,超过就会限流,对其他服务就没有影响。效果可自行演示。

4.网关限流参数

SpringCloud-Zuul高并发请求下的限流处理

5.异常处理

增对error异常,我们可以提供一个全局异常处理器

@RestController
public class ExceptionHandler implements ErrorController{

    @Override
    public String getErrorPath() {

        return "error";
    }

    @RequestMapping(value="/error")
    public String error(){
        return "{\"result\":\"访问太多频繁,请稍后再访问!!!\"}";
    }

}

限流的提示如下:

SpringCloud-Zuul高并发请求下的限流处理

创新互联www.cdcxhl.cn,专业提供香港、美国云服务器,动态BGP最优骨干路由自动选择,持续稳定高效的网络助力业务部署。公司持有工信部办法的idc、isp许可证, 机房独有T级流量清洗系统配攻击溯源,准确进行流量调度,确保服务器高可用性。佳节活动现已开启,新人活动云服务器买多久送多久。

分享标题:SpringCloud-Zuul高并发请求下的限流处理-创新互联
网站链接:https://www.cdcxhl.com/article18/cocodp.html

成都网站建设公司_创新互联,为您提供企业建站ChatGPT动态网站做网站网站制作定制开发

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联

成都网站建设公司