Hystrix進階攻略之多線程測試資源佔滿問題,降級策略測試

代碼下載地址: https://gitee.com/jikeh/JiKeHCN-RELEASE.git

依賴系統:

項目名:spring-boot-hystrix-thread

1、場景設計

假設,一個線程池,大小是10個,隊列大小是6個

先進去線程池的是10個請求,然後有6個請求進入等待隊列,線程池裡有空閒,等待隊列中的請求如果還沒有timeout,那麼就進去線程池去執行

10 + 6 = 16個請求之外,2個請求,直接會被reject掉,限流,直接走fallback

2、策略配置

.withCoreSize(10)//線程池大小
/**
* 如果withMaxQueueSize<withqueuesizerejectionthreshold> */
.withMaxQueueSize(6)//緩存隊列大小:默認為-1,即 沒有緩存隊列
.withQueueSizeRejectionThreshold(8)) //阻塞隊列大小:默認是5個

3、測試代碼

private static void testResourceIsFull(){
for(int i = 0; i < 18; i++) {
new TestThread(i).start();
}
}

private static class TestThread extends Thread {

private int index;
public TestThread(int index) {
this.index = index;
}


@Override
public void run() {
String response = HttpClientUtils.sendGetRequest("http://localhost:8022/get/ad?adId=1");
}
}

4、實驗實錄:

10個正常請求

2個降級請求

6個正常請求(5s之後打印,因為我們設置了睡眠時間)

Hystrix進階攻略之多線程測試資源佔滿問題,降級策略測試


分享到:


相關文章: