我試圖遷移現有的NIO服務器代碼庫,具有以下特徵: - 在Selector控制下執行連接接受的單線程 - 執行套接字讀/寫的多個線程(一個線程:一個選擇器:一個SocketChannel的接受連接)多反應堆設計 - 我想重塑Netty嗎?
我想遷移到一個模型,其中單讀/寫線程可以有一個選擇器和多個可接受的SocketChannels可以註冊和註銷。這樣,一個線程就可以爲IO多路複用多個SocketChannel。
據我所知,這個模型將直接映射到Netty案例,其中有一個老闆線程和可配置的工人數量以及每個工人的多個連接數。 ExecutionHandler是正交的,所以我現在沒有把它帶入畫面。
具體問題: 我是重塑「的Netty」輪或者是有它預計將延遲敏感的地方連接可以去高達5000和二進制協議消息的匯率是一個服務器上面的方法有什麼區別預計將達到60-70K信息/秒?
據我所知,所提及的數字不會受到上述設計選擇的影響,而是其他因素。但更大的影響力可以通過設計選擇進行 - 至少這是我所相信的提前
謝謝@Abe。剛剛做到了這一點,我有一些旋鈕和幻燈片來調整和扭轉它。到目前爲止,我已經能夠將吞吐量從原始代碼的1.2K /秒提高到~12K /秒。但目標更高,並繼續描述瓶頸 – user1511595