|
@@ -32,14 +32,41 @@ public class NettyServerConfig {
|
|
|
|
|
|
public NettyServerConfig() {
|
|
|
this(getDefaultChannelClass(),
|
|
|
- new NioEventLoopGroup(DEFAULT_BOSS_THREADS, new NamedThreadFactory("Server-boss", true)),
|
|
|
- new NioEventLoopGroup(DEFAULT_IO_THREADS, new NamedThreadFactory("Server-ioWorkers", true)));
|
|
|
+ getDefaultBossGroup(),
|
|
|
+ getDefaultIoWorkersGroup());
|
|
|
}
|
|
|
|
|
|
+
|
|
|
+ private static Class<? extends ServerChannel> getDefaultChannelClass() {
|
|
|
+ if (isLinuxPlatform()) {
|
|
|
+ return EpollServerSocketChannel.class;
|
|
|
+ }
|
|
|
+ return NioServerSocketChannel.class;
|
|
|
+ }
|
|
|
+
|
|
|
+ private static EventLoopGroup getDefaultBossGroup() {
|
|
|
+ return isLinuxPlatform() ? new io.netty.channel.epoll.EpollEventLoopGroup(DEFAULT_BOSS_THREADS, new NamedThreadFactory("Server-boss", true))
|
|
|
+ : new NioEventLoopGroup(DEFAULT_BOSS_THREADS, new NamedThreadFactory("Server-boss", true));
|
|
|
+ }
|
|
|
+
|
|
|
+ private static EventLoopGroup getDefaultIoWorkersGroup() {
|
|
|
+ return isLinuxPlatform() ? new io.netty.channel.epoll.EpollEventLoopGroup(DEFAULT_IO_THREADS, new NamedThreadFactory("Server-ioWorkers", true))
|
|
|
+ : new NioEventLoopGroup(DEFAULT_IO_THREADS, new NamedThreadFactory("Server-ioWorkers", true));
|
|
|
+ }
|
|
|
+
|
|
|
+ private static EventLoopGroup getDefaultBossGroup(int bossThreads) {
|
|
|
+ return isLinuxPlatform() ? new io.netty.channel.epoll.EpollEventLoopGroup(bossThreads, new NamedThreadFactory("Server-boss", true))
|
|
|
+ : new NioEventLoopGroup(bossThreads, new NamedThreadFactory("Server-boss", true));
|
|
|
+ }
|
|
|
+
|
|
|
+ private static EventLoopGroup getDefaultIoWorkersGroup(int ioThreads) {
|
|
|
+ return isLinuxPlatform() ? new io.netty.channel.epoll.EpollEventLoopGroup(ioThreads, new NamedThreadFactory("Server-ioWorkers", true))
|
|
|
+ : new NioEventLoopGroup(ioThreads, new NamedThreadFactory("Server-ioWorkers", true));
|
|
|
+ }
|
|
|
public NettyServerConfig(int bossThreads, int ioThreads) {
|
|
|
this(getDefaultChannelClass(),
|
|
|
- new NioEventLoopGroup(bossThreads, new NamedThreadFactory("Server-boss", true)),
|
|
|
- new NioEventLoopGroup(ioThreads, new NamedThreadFactory("Server-ioWorkers", true)));
|
|
|
+ getDefaultBossGroup(bossThreads),
|
|
|
+ getDefaultIoWorkersGroup(ioThreads));
|
|
|
}
|
|
|
|
|
|
public Class<? extends ServerChannel> getChannelClass() {
|
|
@@ -54,15 +81,7 @@ public class NettyServerConfig {
|
|
|
return ioWorkers;
|
|
|
}
|
|
|
|
|
|
- /**
|
|
|
- * 获取默认的 Channel 类型,根据操作系统选择。
|
|
|
- */
|
|
|
- private static Class<? extends ServerChannel> getDefaultChannelClass() {
|
|
|
- if (isLinuxPlatform()) {
|
|
|
- return EpollServerSocketChannel.class;
|
|
|
- }
|
|
|
- return NioServerSocketChannel.class;
|
|
|
- }
|
|
|
+
|
|
|
|
|
|
/**
|
|
|
* 判断是否为 Linux 平台。
|