Netty与阻塞IO客户端,浏览器

3

我有一个使用传统BIO(阻塞IO)的遗留应用程序(HTTP和原始TCP),我想开始用Netty替换它。

Netty如何与传统BIO客户端配合工作?如果我先用Netty替换服务器组件并保留BIO客户端,是否会有任何问题?

此外,Netty构建的服务器能否替换旨在为浏览器客户端提供服务的典型HTTP Web服务器?是否会有任何问题?

谢谢

1个回答

5
我的理解是Netty支持阻塞(org.jboss.netty.channel.socket.oio)和非阻塞(org.jboss.netty.channel.socket.nio)操作。请参见http://docs.jboss.org/netty/3.2/guide/html/architecture.html 第2.2节。
很容易在阻塞和非阻塞之间切换,因此您可以尝试使用NIO,如果它不能与您的客户端一起工作,您可以切换到OIO。您可以在设置ChannelFactory时设置所需支持的IO类型。
// NIO - non blocking
ChannelFactory factory =
        new NioSeverSocketChannelFactory(
                Executors.newCachedThreadPool(),
                Executors.newCachedThreadPool());

//OIO - blocking
ChannelFactory factory =
        new OioServerSocketChannelFactory(
                Executors.newCachedThreadPool(),
                Executors.newCachedThreadPool());

已经有许多基于Netty实现的HTTP Web服务器/框架。例如,webbitxitrumplay framework。我相信还有更多。这些只是我能想到的。

如果您希望自己实现,可以从org.jboss.netty.example.http包中的示例开始。


Netty有自己的OIO库吗,还是这是第三方(jboss)库? - Ismail Yavuz

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接