我已經使用Netty編寫了一個簡單的UDP服務器。服務器在特定接口上偵聽一個端口。JBoss Netty和UDP:多線程?
ChannelFactory factory =
new NioDatagramChannelFactory(
Executors.newCachedThreadPool());
ConnectionlessBootstrap bootstrap = new ConnectionlessBootstrap(factory);
bootstrap.getPipeline().addLast("MyHandler", new TestHandler());
bootstrap.bind(new InetSocketAddress(InetAddress.getByName("192.168.1.100"), 8080));
我使用的客戶端發送大量的UDP數據報到服務器。當我用VisualVM分析我的應用程序時,我發現只有一個線程(名爲New I/O worker#1)處理傳入的消息。是否如預期的那樣?
如果是,單個線程如何處理大量的傳入消息?我已經編寫了一個Spring集成應用程序,它監聽端口上的UDP數據報(使用UDP入站通道適配器),並且有一個線程在端口上偵聽,但此線程將傳入消息傳遞給其他線程一個水池。
感謝
這不是內部由Netty處理的東西嗎? –
我承認我知道Netty較少。過去我使用過JBoss遠程,而JBoss遠程使用java.nio的一種「包裝」。作爲一種良好的做法,我建議在查看包裝框架之前瞭解API基礎知識。 Reactor模式是一種不在nio中使用的模式,在其他框架和API(不僅僅是Java)中也是如此。我認爲所提供的文章會給你一個好的開始,然後,如果你想用Netty「放鬆你的生活」 - 去吧:) –