netty,tomcat线程模型

时间:2012-07-13 05:05:41

标签: tomcat websocket threadpool netty

我是这方面的新手,如果我的问题对于经验丰富的netty,tomcat用户来说似乎太天真,我很抱歉。

我正在运行一个Netty websocket服务器(使用示例代码并在端口8090上运行)通过tomcat中的spring配置(在端口8080上运行)。我试图理解两者的线程模型以及整体如何工作。

据我所知,tomcat by deafult设置maxThreads = 200(最大活动线程数)。 虽然netty使用boss线程来创建和连接/绑定套接字,然后将它们传递给工作线程,后者执行实际的异步I / O.

现在我想了解:

  • 如果Netty使用的线程将从tomcat池获取并因此减少活动线程的数量)?

  • 对于每个websocket连接都会分配和使用一个单独的线程(我不太清楚websocket实现,但我认为答案应该是否定的。)

  • 总的来说,它会如何影响连接到webapp和websocket服务器的并发客户端数量?

编辑:

因此在编写weboscket服务器时应该记住哪些具体要点?

1 个答案:

答案 0 :(得分:4)

在Netty中,您通过将Executor传递给构造函数来指定ThreadPool。因此,只要您不使用与Tomcat中使用的池相同的池,它就不会影响可用的线程。

Netty的Webseocket实现可以与其NIO传输一起使用。在这种情况下,您将在连接之间共享许多线程。所以从连接到线程没有1:1的映射。