netty,tomcat线程模型

问题描述 投票:4回答:1

我是对此的新手,如果我的问题对于有经验的netty和tomcat用户来说似乎太幼稚了,我感到抱歉。

我正在运行Netty Websocket服务器(使用示例代码并在端口8090上运行),该服务器是通过tomcat内部的spring(在端口8080上运行)配置的。我试图了解两者的线程模型以及整体的工作方式。

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

现在我想了解的是:

  • 如果Netty使用的线程将从tomcat池中获取,从而减少了活动线程的数量)?

  • 对于每个websocket连接,将分配和使用一个单独的线程(我不太清楚websocket的实现,尽管我认为对此的回答应该为否)。

  • 总体,这将如何影响同时连接到Web应用程序和WebSocket服务器的客户端数量?

编辑:

因此,在编码weboscket服务器时,应牢记任何特定点吗?

tomcat websocket threadpool netty
1个回答
5
投票

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

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

© www.soinside.com 2019 - 2024. All rights reserved.