偶的伺服器:nio,困惑!
偶的專案要求伺服器支援2000個連線併發: (1)全雙工的 (2)長連線的。也許錯誤選擇了java,又錯誤使用了nio.
(1)連線數太大,偶用了執行緒池和nio.
(2)每100個連線分配一個MsgMgr,每個MsgMgr又開了三個執行緒:分別處理收,發和處理訊息。
(3)因考慮到雙工,偶每個MsgMgr使用兩個selector:即每個socketchannel向兩個selector分別註冊讀、寫interOps.
(4)偶又開了一個執行緒序分配一個selector處理連線事件。
這樣設計是否有問題,因偶覺得匯流排程數目太大,效能很差。
偶關於nio還有下面的問題,需要請教大家。
(1)一個selector在windows下好象只支援64個連線的併發,那是否意味著偶在windows下一個selector最多能被64個socketChannel註冊?(確實有64個socketChannel同時讀寫的可能)。
(2)讀寫分開用selector有什麼弊端,JVM支援selector的數目是否有限制,因為我發現每selector.open()會開啟很多的監聽埠
(1)連線數太大,偶用了執行緒池和nio.
(2)每100個連線分配一個MsgMgr,每個MsgMgr又開了三個執行緒:分別處理收,發和處理訊息。
(3)因考慮到雙工,偶每個MsgMgr使用兩個selector:即每個socketchannel向兩個selector分別註冊讀、寫interOps.
(4)偶又開了一個執行緒序分配一個selector處理連線事件。
這樣設計是否有問題,因偶覺得匯流排程數目太大,效能很差。
偶關於nio還有下面的問題,需要請教大家。
(1)一個selector在windows下好象只支援64個連線的併發,那是否意味著偶在windows下一個selector最多能被64個socketChannel註冊?(確實有64個socketChannel同時讀寫的可能)。
(2)讀寫分開用selector有什麼弊端,JVM支援selector的數目是否有限制,因為我發現每selector.open()會開啟很多的監聽埠
,請問nio為何要這麼做??
(3)因偶是長連線,所以對每個socketchannel都要不停發beatMsg,按說這應該在MsgMgr中再開一beatThread,但偶覺得執行緒數目太龐大了,想將其放在處理執行緒中,是否會影響處理訊息的速度,有什麼解決辦法?
偶經驗不足,希望大家幫忙提些建議。多謝!
相關文章
- 用NIO UDPSERVER的困惑UDPServer
- NIO學習三、基於NIO的WEB伺服器Web伺服器
- NIO 伺服器搭建筆記伺服器筆記
- NIO Socket實現檔案伺服器伺服器
- 請教伺服器是NIO的socket server問題?伺服器Server
- 找工作的困惑
- 自學java的困惑Java
- 偶的Java之路Java
- NIO學習二、NIO的基本使用
- 學習java的困惑Java
- 寫程式碼的困惑
- 關於JavaScript的困惑JavaScript
- java新學者的困惑Java
- 對spring的困惑????Spring
- 困惑度的計算
- 偶翻譯的小說
- 【NIO】Java NIO之通道Java
- 單例模式static的困惑單例模式
- 【NIO】Java NIO之緩衝Java
- Java NIO系列2:NIO概述Java
- Nio再學習之NIO的buffer緩衝區
- 中年程式設計師的困惑程式設計師
- 分散式與叢集的困惑分散式
- 關於物件導向的困惑!物件
- 求助,動態代理模式的困惑模式
- 對SPRING事務的困惑Spring
- 初學設計模式的困惑設計模式
- 軟體測試員的困惑
- 困惑的軟體測試員
- 【NIO】Java NIO之選擇器Java
- NIO學習一、NIO簡介
- 解析對偶理論與對偶單純性法
- NIO的介紹和JDK7下NIO的一個案例JDK
- 深入的聊聊 Java NIOJava
- nio的實現原理
- BIO、NIO的區別
- 【死磕NIO】— NIO基礎詳解
- 調整陣列順序使奇數位於偶數前面,偶數和偶數之間的相對位置不變陣列