- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我想使用 Java Netty 为来自客户端的大量持久连接创建一个 TCP 服务器。换句话说,想象那里有 1000 个客户端设备,它们都创建并维护到 TCP 服务器的持久连接。将有合理数量的流量(主要是文本行)在这些持久连接中的每一个之间来回传输。如何确定在 NioEventLoopGroup 的 boss 和 worker 组中使用的最佳线程数?
我的理解是,当创建连接时,Netty 创建了一个 SimpleChannelInboundHandler<String>
对象来处理连接。创建连接后,处理程序 channelActive
方法被调用,每次它从客户端收到一条新消息时,方法messageReceived
被调用(或 Netty 4.0.24 中的 channelRead0
方法)。
我的理解正确吗?
如果我有长时间运行的代码要在 messageReceived 中运行会怎样 -我需要在另一个线程中启动此代码吗(java.util.Thread)?
如果我的 messageReceived 方法阻塞在某些东西上会发生什么需要很长时间才能完成?这会让 Netty 陷入困境吗?停止?
基本上我需要编写一个 TCP 套接字服务器,它可以尽快为大量持久连接提供服务。
NioEventLoopGroup
的线程数是否有任何可用指南?以及如何在处理程序中使用任何线程?如有任何帮助,我们将不胜感激。
最佳答案
如何确定在 NioEventLoopGroup 的 boss 和 worker 组中使用的最佳线程数?
不要忘记添加 -XmsYYYYM 和 -XmxYYYYM 作为您的 VM 属性,因为如果没有它们,您可能会遇到 JVM 未使用所有内核的情况.
如果我有长时间运行的代码要在 messageReceived 中运行,会发生什么情况 - 我是否需要在另一个线程 (java.util.Thread) 中启动此代码?
如果我的 messageReceived 方法在某些事情上阻塞或需要很长时间才能完成,会发生什么情况?
这会让 Netty 停下来吗?
关于java - 具有持久连接的 NioEventLoopGroup 的线程数,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/27074054/
我想在服务器 Bootstrap 的 NioEventLoopGroup 中重用工作线程的线程池。 NioEventLoopGroup interface提供使用自定义执行器。我担心使用它,因为默认执
我一直在通过添加来调试我的环境,突然我收到了 Netty 验证错误。 Netty的版本是4.1.46.Final,Java JDK版本是11编译和运行时。 我使用 Guice,但除了初始化这个类之外,
在 netty 堆栈关闭后重用 NioEventLoopGroup 是个好习惯吗? 这是一些背景: 在连接丢失后不久建立 netty 连接时,我们会耗尽堆外内存(我们在连接丢失后重新连接 netty
我是 Netty 和 Java NIO 的新手。我正在使用 Netty 4.0 RC3。我对 NioEventLoopGroup 和 AioEventLoopGroup 之间的区别感到困惑。我看到 N
我想使用 Java Netty 为来自客户端的大量持久连接创建一个 TCP 服务器。换句话说,想象那里有 1000 个客户端设备,它们都创建并维护到 TCP 服务器的持久连接。将有合理数量的流量(主要
我们有一个分布式应用程序,它使用 Netty (4) 进行低级通信。该系统中的一个进程执行多个任务。每个任务都包含一组输入和输出 channel 。在 Netty 中, channel 永久分配给单个
我的应用程序使用 Netty 4.1.6.Final 和 Lettuce 4.3.0 , Async Http Client 2.1.0 Lettuce 4.3.0也依赖netty 4.1.6.Fin
我使用的是netty 4.1.0CR,官方代码示例建议我使用NioEventLoopGroup来启动服务端和客户端,如下: EventLoopGroup bossGroup = new NioEven
我是一名优秀的程序员,十分优秀!