當(dāng)前位置:
首頁(yè) >
前端技术
> javascript
>内容正文
javascript
springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理
生活随笔
收集整理的這篇文章主要介紹了
springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理
小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
高并發(fā)的情況肯定是實(shí)際場(chǎng)景中經(jīng)常碰到的情況,那么這種情況下限流措施肯定是必須的,本文我們就來看看zuul中限流的處理
高并發(fā)的限流處理
1.創(chuàng)建項(xiàng)目
創(chuàng)建一個(gè)SpringCloud項(xiàng)目
2.添加依賴
必須要添加 ratelimit依賴
org.springframework.boot spring-boot-starter-web org.springframework.cloud spring-cloud-starter-eureka org.springframework.cloud spring-cloud-starter-zuul com.marcosbarbero.cloud spring-cloud-zuul-ratelimit 1.3.4.RELEASE3.配置文件
在配置文件中添加限流的屬性,分為具體限流和全局限流
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-productzuul.routes.e-book-order.path=/order/**zuul.routes.e-book-order.serviceId=e-book-order3.1 全局限流
針對(duì)每一個(gè)服務(wù)都有效果
#全局配置限流zuul.ratelimit.enabled=true##60s 內(nèi)請(qǐng)求超過 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請(qǐng)求zuul.ratelimit.default-policy.limit=3zuul.ratelimit.default-policy.refresh-interval=60##針對(duì) IP 進(jìn)行限流,不影響其他 IPzuul.ratelimit.default-policy.type=origin分別啟動(dòng)product和order兩個(gè)服務(wù),然后啟動(dòng)網(wǎng)關(guān)服務(wù),訪問測(cè)試如下
product服務(wù):
一分鐘訪問的第四次
order服務(wù):正常訪問
一分鐘內(nèi)訪問的第四次
全局限流配置對(duì)每個(gè)服務(wù)都有效果
3.2 局部限流
針對(duì)特定的服務(wù)指定的限流策略
# 局部限流:針對(duì)某個(gè)服務(wù)進(jìn)行限流##開啟限流zuul.ratelimit.enabled=true##60s 內(nèi)請(qǐng)求超過 3 次,服務(wù)端就拋出異常,60s 后可以恢復(fù)正常請(qǐng)求zuul.ratelimit.policies.e-book-product.limit=3zuul.ratelimit.policies.e-book-product.refresh-interval=60##針對(duì)某個(gè) IP 進(jìn)行限流,不影響其他 IPzuul.ratelimit.policies.e-book-product.type=origin以上配置只針對(duì)e-book-product的服務(wù)一分鐘內(nèi)最多訪問3次,超過就會(huì)限流,對(duì)其他服務(wù)就沒有影響。效果可自行演示。
4.網(wǎng)關(guān)限流參數(shù)
5.異常處理
增對(duì)error異常,我們可以提供一個(gè)全局異常處理器
@RestControllerpublic class ExceptionHandler implements ErrorController{ @Override public String getErrorPath() { return "error"; } @RequestMapping(value="/error") public String error(){ return "{"result":"訪問太多頻繁,請(qǐng)稍后再訪問!!!"}"; }}限流的提示如下:
關(guān)注我,后續(xù)更多干貨奉上
總結(jié)
以上是生活随笔為你收集整理的springcloud 并发_SpringCloud-Zuul高并发请求下的限流处理的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 来源oa_骨性关节炎(OA)的初期管理—
- 下一篇: java 多态判断非空_跳槽涨薪季面试题