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