高并發(fā)的情況肯定是實(shí)際場(chǎng)景中經(jīng)常碰到的情況,那么這種情況下限流措施肯定是必須的,本文我們就來(lái)看看zuul中限流的處理
創(chuàng)新互聯(lián)主要從事網(wǎng)站設(shè)計(jì)制作、成都網(wǎng)站設(shè)計(jì)、網(wǎng)頁(yè)設(shè)計(jì)、企業(yè)做網(wǎng)站、公司建網(wǎng)站等業(yè)務(wù)。立足成都服務(wù)郴州,十多年網(wǎng)站建設(shè)經(jīng)驗(yàn),價(jià)格優(yōu)惠、服務(wù)專(zhuān)業(yè),歡迎來(lái)電咨詢(xún)建站服務(wù):028-86922220高并發(fā)的限流處理
??創(chuàng)建一個(gè)SpringCloud項(xiàng)目
??必須要添加 ratelimit依賴(lài)
<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>
??在配置文件中添加限流的屬性,分為具體限流和全局限流
server.port=9030
# eureka注冊(cè)中心的配置
eureka.client.serviceUrl.defaultZone=http://dpb:123456@eureka1:8761/eureka/,http://dpb:123456@eureka2:8761/eureka/
# 定義的兩個(gè)路由規(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
??針對(duì)每一個(gè)服務(wù)都有效果
#全局配置限流
zuul.ratelimit.enabled=true
##60s 內(nèi)請(qǐng)求超過(guò) 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請(qǐng)求
zuul.ratelimit.default-policy.limit=3
zuul.ratelimit.default-policy.refresh-interval=60
##針對(duì) IP 進(jìn)行限流,不影響其他 IP
zuul.ratelimit.default-policy.type=origin
分別啟動(dòng)product和order兩個(gè)服務(wù),然后啟動(dòng)網(wǎng)關(guān)服務(wù),訪問(wèn)測(cè)試如下
product服務(wù):
一分鐘訪問(wèn)的第四次
order服務(wù):正常訪問(wèn)
一分鐘內(nèi)訪問(wèn)的第四次
全局限流配置對(duì)每個(gè)服務(wù)都有效果
??針對(duì)特定的服務(wù)指定的限流策略
# 局部限流:針對(duì)某個(gè)服務(wù)進(jìn)行限流
##開(kāi)啟限流
zuul.ratelimit.enabled=true
##60s 內(nèi)請(qǐng)求超過(guò) 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請(qǐng)求
zuul.ratelimit.policies.e-book-product.limit=3
zuul.ratelimit.policies.e-book-product.refresh-interval=60
##針對(duì)某個(gè) IP 進(jìn)行限流,不影響其他 IP
zuul.ratelimit.policies.e-book-product.type=origin
以上配置只針對(duì)e-book-product的服務(wù)一分鐘內(nèi)最多訪問(wèn)3次,超過(guò)就會(huì)限流,對(duì)其他服務(wù)就沒(méi)有影響。效果可自行演示。
增對(duì)error異常,我們可以提供一個(gè)全局異常處理器
@RestController
public class ExceptionHandler implements ErrorController{
@Override
public String getErrorPath() {
return "error";
}
@RequestMapping(value="/error")
public String error(){
return "{\"result\":\"訪問(wèn)太多頻繁,請(qǐng)稍后再訪問(wèn)?。?!\"}";
}
}
限流的提示如下:
創(chuàng)新互聯(lián)www.cdcxhl.cn,專(zhuān)業(yè)提供香港、美國(guó)云服務(wù)器,動(dòng)態(tài)BGP最優(yōu)骨干路由自動(dòng)選擇,持續(xù)穩(wěn)定高效的網(wǎng)絡(luò)助力業(yè)務(wù)部署。公司持有工信部辦法的idc、isp許可證, 機(jī)房獨(dú)有T級(jí)流量清洗系統(tǒng)配攻擊溯源,準(zhǔn)確進(jìn)行流量調(diào)度,確保服務(wù)器高可用性。佳節(jié)活動(dòng)現(xiàn)已開(kāi)啟,新人活動(dòng)云服務(wù)器買(mǎi)多久送多久。
分享標(biāo)題:SpringCloud-Zuul高并發(fā)請(qǐng)求下的限流處理-創(chuàng)新互聯(lián)
網(wǎng)站鏈接:http://redsoil1982.com.cn/article18/cocodp.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供企業(yè)建站、ChatGPT、動(dòng)態(tài)網(wǎng)站、做網(wǎng)站、網(wǎng)站制作、定制開(kāi)發(fā)
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶(hù)投稿、用戶(hù)轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)
猜你還喜歡下面的內(nèi)容