0
現在我正嘗試在java項目中使用ICE。我想知道我是否應該爲服務器和客戶端配置連接數。如果我應該如何配置計數?ICE中的連接數量
現在我正嘗試在java項目中使用ICE。我想知道我是否應該爲服務器和客戶端配置連接數。如果我應該如何配置計數?ICE中的連接數量
是的,你應該這樣做。
每個通信創建兩個線程池:
客戶端線程池服務的傳出連接,這主要 涉及處理答覆傳出的請求,包括 通知AMI回調對象。如果連接在 雙向模式下使用,則客戶端線程池還會分派傳入的 回調請求。服務器線程池服務傳入 連接。它調度傳入請求,併爲雙向連接處理對傳出請求的回覆。默認情況下,這兩個線程池由所有通信器的對象 適配器共享。如有必要,您可以配置單個對象適配器 來改爲使用專用線程池。
默認情況下,線程數只有一個。所以你可能想放大它。
變化,這些數字在三個方面:
硬編碼例如:
protected void initProperties(Ice.Properties iceProperties) {
iceProperties.setProperty("Ice.Override.ConnectTimeout", "70");
iceProperties.setProperty("Ice.ThreadPool.Client.Size", "100");
iceProperties.setProperty("Ice.ThreadPool.Client.SizeMax", "1000");
iceProperties.setProperty("Ice.ThreadPool.Client.StackSize", "131072");//128k
iceProperties.setProperty("Ice.ThreadPool.Server.SizeMax", "1000");
iceProperties.setProperty("Ice.ThreadPool.Server.StackSize", "131072");
iceProperties.setProperty("Ice.MessageSizeMax", "102400");
}
protected void init() {
Ice.Properties iceProperties = Ice.Util.createProperties();
initProperties(iceProperties);
Ice.InitializationData initData = new Ice.InitializationData();
initData.properties = iceProperties;
ic = Ice.Util.initialize(initData);
communicators.add(ic);
}
看到這個: