netty实战之百万级流量NioEventLoopGroup线程数配置

原创 2017年08月30日 14:26:41

编写netty服务端程序的时候,会使用到两个线程组

EventLoopGroup parentGroup = new NioEventLoopGroup();
EventLoopGroup childGroup = new NioEventLoopGroup();

那么parentGroup和childGroup分别应该设置多少个线程呢?

关于netty的线程组概念,李林锋的Netty系列之Netty线程模型已经有详细介绍了,这里不详细说了。

如果你的应用服务的QPS只是几百万,那么parentGroup只需要设置为2,childGroup设置为4

EventLoopGroup  parentGroup = new NioEventLoopGroup(2, new DefaultThreadFactory("server1", true));
EventLoopGroup  childGroup = new NioEventLoopGroup(4, new DefaultThreadFactory("server2", true));

目前自己参与的应用,QPS是一百多万,上面的设置是完全可以应付的。

至于netty客户端程序,设置4个线程。

EventLoopGroup  workGroup = new NioEventLoopGroup(4, new DefaultThreadFactory("client", true));

至于应用如果需要承受上千万上亿流量的,需要另外调整线程数。

这些线程数一般都不是写死的,一种是设置到环境变量里,而更好的方式是在JAVA进程启动的时候,指定参数,将线程数设置进去。

-Dnetty.server.parentgroup.size=2 -Dnetty.server.childgroup.size=4

应用的代码里可以通过

int parentThreadGroupSize = Integer.getInteger("netty.server.parentgroup.size");
int childThreadGroupSize = Integer.getInteger("netty.server.childgroup.size");

获取到。

版权声明:本文为博主原创文章,未经博主允许不得转载。 举报

相关文章推荐

Oracle的悲观锁和乐观锁

为了得到最大的性能,一般数据库都有并发机制,不过带来的问题就是数据访问的冲突。为了解决这个问题,大多数数据库用的方法就是数据的锁定。 数据的锁定分为两种方法,第一种叫做悲观锁,第二种叫做乐观锁。什么...

Java NIO框架Netty教程(三) – Object对象传递

说了这么多废话,才提到对象的传输,不知道您是不是已经不耐烦了。一个系统内部的消息传递,没有对象传递是不太现实的。下面就来说说,怎么传递对象。 如果,您看过前面的介绍,如果您善于专注本质,勤于思考。您应...

我是如何成为一名python大咖的?

人生苦短,都说必须python,那么我分享下我是如何从小白成为Python资深开发者的吧。2014年我大学刚毕业..

Netty实现原理浅析

Netty是JBoss出品的高效的Java NIO开发框架,关于其使用,可参考我的另一篇文章 netty使用初步。本文将主要分析Netty实现方面的东西,由于精力有限,本人并没有对其源码做了极细致的研...

通过Guice 进行依赖项注入

构造器注入 public class FrogMan{ @Inject public FrogMan(Vehicle vehicle) { this.vehicle = vehicle; ...

Java NIO框架Netty教程(四) – ServerBootStrap启动流程源码分析

花了几天时间,仔细梳理了一下Netty的源码,总结了一下ServerBootStrap的启动和任务处理流程,基本涵盖了Netty的关键架构。   OneCoder总结了一张流程图:    ...

DataGrid使用心得(附大量代码)

1. 为 DataGrid 控件设计样式        在之后添加如下代码                 &...

Java NIO框架Netty教程(一) – Hello Netty

先啰嗦两句,如果你还不知道Netty是做什么的能做什么。那可以先简单的搜索了解一下。我只能说Netty是一个NIO的框架,可以用于开发分布式的Java程序。具体能做什么,各位可以尽量发挥想象。技术,是...

3个netty5的例子,简单介绍netty的用法

3个netty5的例子,简单介绍netty的用法
  • tjbsl
  • tjbsl
  • 2016-04-01 18:49
  • 11988
返回顶部
收藏助手
不良信息举报
您举报文章:深度学习:神经网络中的前向传播和反向传播算法推导
举报原因:
原因补充:

(最多只允许输入30个字)