在我們的應用程序中,我們需要構建一個HTTP服務器,其中在啓動時,各種遠程服務器向其打開約1,600個持久HTTP連接,並且每個連接快速連續發送數千個HTTP POST請求流大約30秒 - 我們只需要幾毫秒就可以響應每一個。 30秒後連接關閉,另一個打開。我應該如何配置Netty來處理高請求量?
我們選擇了Netty,因爲大多數帳戶它非常適合構建高效的HTTP服務器。
在實現我們的HTTP服務器時,我們遵循Netty HTTP服務器的Snoop示例。
不幸的是,我們遇到的問題可能是Netty被重載所解釋,所以我們正在重新考慮它是否被正確配置,特別是在處理線程的方式。我們將服務器配置如下:
ServerBootstrap bootstrap = new ServerBootstrap(
new NioServerSocketChannelFactory(
Executors.newCachedThreadPool(),
Executors.newCachedThreadPool()));
當我們收到我們處理它,在我們的SimpleChannelUpstreamHandler調用的messageReceived()在同一個線程中的請求。
這種方法應該在我們的應用程序中工作嗎?
編輯:失敗發生時,盒子上的負載平均值爲0.05,非常低。我已經爲Java進程分配了4GB,但幾乎沒有使用它。所以,基本上,這個盒子是完全欠載的。
您可以發佈一些CPU /內存使用率數據嗎? – uldall
根據您的要求作出回覆,該框不會超載。 – sanity
發生了什麼錯誤? –