我使用 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 入站通道适配器),并且有一个线程在端口上侦听,但该线程将传入消息传递给其他线程进行处理一个水池。
谢谢