使用JavaNIO(Netty?)的Web服务客户端

使用JavaNIO(Netty?)的Web服务客户端,java,webservices-client,netty,Java,Webservices Client,Netty,我已经编写了一个简单的客户端来测试我的Web服务,但是我正在研究使用该框架而不是阻塞套接字的可能性,以便增加我可以对Web服务进行的并发连接的数量 我知道JBoss本身使用Netty,但我正在使用Tomcat(目前),对此一无所知。有人这样做过吗,或者使用过类似的东西吗?与其尝试将其他人的套接字处理库集成到Tomcat中,为什么不打开呢?它可能需要升级到Tomcat 6.0,但根据您使用JBoss的经验,这可能是一个更简单的解决方案。我们在实现中使用了Netty和。两者都包装了底层的JavaNI

我已经编写了一个简单的客户端来测试我的Web服务,但是我正在研究使用该框架而不是阻塞套接字的可能性,以便增加我可以对Web服务进行的并发连接的数量


我知道JBoss本身使用Netty,但我正在使用Tomcat(目前),对此一无所知。有人这样做过吗,或者使用过类似的东西吗?

与其尝试将其他人的套接字处理库集成到Tomcat中,为什么不打开呢?它可能需要升级到Tomcat 6.0,但根据您使用JBoss的经验,这可能是一个更简单的解决方案。

我们在实现中使用了Netty和。两者都包装了底层的JavaNIO类,使事情变得更加简单和简洁。在比较两者时,我们选择了内蒂。我们发现Netty更简单,为NIO提供了更强大的用途。我建议看一下这个,因为它对两者有很好的比较。

这是一个有用的答案,因为我可能会在服务器的可伸缩性方面遇到问题,但是我想在测试客户端而不是服务器中使用Netty(或其他什么)。这应该有更多的支持票,非常方便的提示,我甚至没有意识到这是一个选项。在NIO上有直接字节缓冲区的Tomcat,非常好。谢谢Edwin。但是,值得注意的是,这只涵盖了Servlet处理的一部分——您的实际请求处理仍然需要绑定到一个线程(至少对于常规的Servlet API)。它可能很有用,但取决于花在哪里的时间,并不一定足够。无论您使用NIO还是普通IO,您最多可以使用10K并发连接。IO将使用更多的资源来实现这一点,但如果内存充足或并发连接少于1K,则不太可能注意到显著的差异。顺便说一句,我很想知道你是否看到了不同。但是如果每个连接都阻塞了一个线程,我不受我可以创建的线程数量的限制吗?是的,但问题是你的并发性是否会提高到那个水平?现代OS/JVM组合通常可以支持多达数千个线程,如果大多数线程在大多数时间处于非活动状态?您是否必须编写Web服务API或修改现有的实现?因此,我们使用JBossWS作为我们的Web服务提供商(不过,现在我们几乎将所有内容都转移到了REST服务)。我们还分别使用Netty进行流式处理。考虑到我在JBoss WS上看到的堆栈跟踪,我非常确定他们正在利用Netty。因此,您可能只想利用该库。