SpringCloud-Zuul高并發(fā)請求下的限流處理-創(chuàng)新互聯(lián)

高并發(fā)的情況肯定是實(shí)際場景中經(jīng)常碰到的情況,那么這種情況下限流措施肯定是必須的,本文我們就來看看zuul中限流的處理

創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)郴州,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專業(yè),歡迎來電咨詢建站服務(wù):028-86922220

高并發(fā)的限流處理

1.創(chuàng)建項(xiàng)目

??創(chuàng)建一個SpringCloud項(xiàng)目

SpringCloud-Zuul高并發(fā)請求下的限流處理

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/

# 定義的兩個路由規(guī)則
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 全局限流

??針對每一個服務(wù)都有效果

#全局配置限流
zuul.ratelimit.enabled=true
##60s 內(nèi)請求超過 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請求
zuul.ratelimit.default-policy.limit=3
zuul.ratelimit.default-policy.refresh-interval=60
##針對 IP 進(jìn)行限流,不影響其他 IP
zuul.ratelimit.default-policy.type=origin

分別啟動product和order兩個服務(wù),然后啟動網(wǎng)關(guān)服務(wù),訪問測試如下
product服務(wù):
SpringCloud-Zuul高并發(fā)請求下的限流處理

一分鐘訪問的第四次

SpringCloud-Zuul高并發(fā)請求下的限流處理

order服務(wù):正常訪問

SpringCloud-Zuul高并發(fā)請求下的限流處理

一分鐘內(nèi)訪問的第四次
SpringCloud-Zuul高并發(fā)請求下的限流處理
全局限流配置對每個服務(wù)都有效果

3.2 局部限流

??針對特定的服務(wù)指定的限流策略

# 局部限流:針對某個服務(wù)進(jìn)行限流
##開啟限流
zuul.ratelimit.enabled=true
##60s 內(nèi)請求超過 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請求
zuul.ratelimit.policies.e-book-product.limit=3
zuul.ratelimit.policies.e-book-product.refresh-interval=60
##針對某個 IP 進(jìn)行限流,不影響其他 IP
zuul.ratelimit.policies.e-book-product.type=origin

以上配置只針對e-book-product的服務(wù)一分鐘內(nèi)最多訪問3次,超過就會限流,對其他服務(wù)就沒有影響。效果可自行演示。

4.網(wǎng)關(guān)限流參數(shù)

SpringCloud-Zuul高并發(fā)請求下的限流處理

5.異常處理

增對error異常,我們可以提供一個全局異常處理器

@RestController
public class ExceptionHandler implements ErrorController{

    @Override
    public String getErrorPath() {

        return "error";
    }

    @RequestMapping(value="/error")
    public String error(){
        return "{\"result\":\"訪問太多頻繁,請稍后再訪問?。?!\"}";
    }

}

限流的提示如下:

SpringCloud-Zuul高并發(fā)請求下的限流處理

創(chuàng)新互聯(lián)www.cdcxhl.cn,專業(yè)提供香港、美國云服務(wù)器,動態(tài)BGP最優(yōu)骨干路由自動選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動現(xiàn)已開啟,新人活動云服務(wù)器買多久送多久。

分享標(biāo)題:SpringCloud-Zuul高并發(fā)請求下的限流處理-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://muchs.cn/article18/cocodp.html

成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、ChatGPT動態(tài)網(wǎng)站、做網(wǎng)站、網(wǎng)站制作、定制開發(fā)

廣告

聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請盡快告知,我們將會在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場,如需處理請聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)

成都網(wǎng)站建設(shè)公司