Netty 的服务端是业务代码处理逻辑是由 WorkerGroup 来完成的,而 WorkerGroup 是由多个 EventLoop 构成的。
一个 EventLoop 持有一个 Selctor,而一个 Selector 可以管理多个 Channel。
EventLoop 的个数可以由构造函数决定,那么 EventLoop 里面包含的 Channel 个数是多少,由谁决定?
Netty 的服务端是业务代码处理逻辑是由 WorkerGroup 来完成的,而 WorkerGroup 是由多个 EventLoop 构成的。
一个 EventLoop 持有一个 Selctor,而一个 Selector 可以管理多个 Channel。
EventLoop 的个数可以由构造函数决定,那么 EventLoop 里面包含的 Channel 个数是多少,由谁决定?
15 回答8.4k 阅读
8 回答6.2k 阅读
4 回答4.4k 阅读✓ 已解决
4 回答4k 阅读
1 回答3k 阅读✓ 已解决
3 回答2.1k 阅读✓ 已解决
2 回答1.5k 阅读✓ 已解决
Channel的个数理论上受限于JVM和操作系统的资源以及系统配置了。
每个Channel对象对应底层操作系统的一个socket文件句柄;而Selctor对应Linux的epoll【理论上无上限】。
那么对于操作系统来说可能的制约因素:
JVM来说可能的制约因素:
当然这是理想化的推论,实际可能还有很多其他问题;