Java 连接速度慢会影响网络性能吗?
代码-1Java 连接速度慢会影响网络性能吗?,java,performance,netty,Java,Performance,Netty,代码-1 new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool(),WORKER_SIZE) 代码2 OrderedMemoryAwareThreadPoolExecutor executor = new OrderedMemoryAwareThreadPoolExecutor(48, 0, 0, 1, TimeUnit.SECONDS); pipelin
new NioServerSocketChannelFactory(Executors.newCachedThreadPool(), Executors.newCachedThreadPool(),WORKER_SIZE)
代码2
OrderedMemoryAwareThreadPoolExecutor executor = new OrderedMemoryAwareThreadPoolExecutor(48, 0, 0, 1, TimeUnit.SECONDS);
pipeline.addLast("executor", new ExecutionHandler(executor));
如果可以从代码1设置IO工作线程池大小(默认值为2*cpu计数),那么在代码2中向管道添加executer(线程池)的目的是什么
IO操作是从工作线程完成的。这是否意味着,连接速度慢或网络不好的客户端会让IO工作线程一直忙到数据完全发送为止?如果是这样的话,增加WORKER_大小可以帮助我防止延迟 您在代码1中添加的线程池用于boss线程和worker线程。boss线程接受连接并将其传递给工作线程进行处理 在代码2中添加的执行器用于处理工作线程读取的消息
连接速度慢不会影响性能,因为您使用的是非阻塞体系结构(NIO)——它在Netty中设置为不阻塞(如果愿意的话可以)在代码1中添加的线程池用于boss线程和工作线程。boss线程接受连接并将其传递给工作线程进行处理 在代码2中添加的执行器用于处理工作线程读取的消息
慢速连接不会影响性能,因为您使用的是非阻塞体系结构(NIO)——它在Netty中设置为不阻塞(如果愿意的话可以)慢速连接通常不会影响NIO中的Netty线程(请查看更新说明) 关于Netty服务器内部线程的一些要点
- 默认情况下,每个服务器端口只有一个Boss线程,并且 将接受连接并将连接移交给工人 线
- 准确地说:WORKER_SIZE是最大的niower数量 服务器可以具有的可运行性。例如,如果服务器 只有一个连接,那么将有1个工作线程。如果连接数正在增加,并且无法将其分配给下一个工作进程(活动连接>工作进程大小),则将以循环方式将连接分配给工作进程
NioWorker使用选择器运行一个循环。选择(500ms)以接收OP_读取,选择器。选择带有超时的阻塞调用,如果大多数连接速度较慢,性能可能会降低?。您可以在org.jboss.netty.channel.socket.nio.SelectorUtil.java和test中减少超时 慢速连接通常不会影响NIO中的Netty线程(请查看更新说明) 关于Netty服务器内部线程的一些要点
- 默认情况下,每个服务器端口只有一个Boss线程,并且 将接受连接并将连接移交给工人 线
- 准确地说:WORKER_SIZE是最大的niower数量 服务器可以具有的可运行性。例如,如果服务器 只有一个连接,那么将有1个工作线程。如果连接数正在增加,并且无法将其分配给下一个工作进程(活动连接>工作进程大小),则将以循环方式将连接分配给工作进程
NioWorker使用选择器运行一个循环。选择(500ms)以接收OP_读取,选择器。选择带有超时的阻塞调用,如果大多数连接速度较慢,性能可能会降低?。您可以在org.jboss.netty.channel.socket.nio.SelectorUtil.java和test中减少超时 我可以说boss线程将请求传递给IO工作线程(从大小为:worker_size的池中选择,代码为1)。IO工作线程将读取的消息传递给另一个要处理的线程(在代码2中设置)。我是否可以说boss线程将请求传递给IO工作线程(从大小为:worker_size in CODE-1的池中选择)。IO工作线程将读取的消息传递给另一个线程进行处理(在代码2中设置)。jestan,我很困惑。boss线程将请求传递给IO工作线程。工作线程触发执行处理程序。如果为处理程序设置了执行池,则请求将在不同的线程中进行,以便io工作线程被释放。我说的对吗?杰斯坦,我很困惑。boss线程将请求传递给IO