說我有我的API兩個端點(春如以前):比線程處理更多的連接
@RequestMapping("/async")
public CompletableFuture<String> g(){
CompletableFuture<String> f = new CompletableFuture<>();
f.runAsync(() -> {
try {
Thread.sleep(5000);
f.complete("Finished");
} catch (InterruptedException e) {
e.printStackTrace();
}
});
Thread.sleep(1000);
return f;
}
@RequestMapping("/sync")
public String h() throws InterruptedException {
Thread.sleep(5000);
Thread.sleep(1000);
return "Finished";
}
當我送2 GET請求(只是單一的GET請求):
- - >應答5024ms
localhost:8080/sync
- >在「響應6055ms`
這是有道理的,因爲我們派出只是單個請求。現在事情變得有趣了,當我用Siege進行負載測試時,涉及到255個併發用戶。
在這種情況下,我的async
API端點無法處理多個連接。
所以async
是不可擴展的。
這是否取決於我的硬件?假設我有硬件能夠處理更多的線程處理程序,然後使用沉重的硬件,異步程序能夠處理更多的事務,因爲線程更多?
還在工作呢,是吧? – Kayaman
你有沒有例外?錯誤? – dit
@Kayaman,它的好奇心;我對基礎設施感興趣,但無法找到足夠的信息。 – Bana