package cn.flightfeather.supervision.infrastructure.config; import cn.flightfeather.supervision.infrastructure.service.NamedThreadFactory; import cn.flightfeather.supervision.infrastructure.service.NettyConfig; import io.netty.channel.ChannelOption; import io.netty.channel.nio.NioEventLoopGroup; import org.springframework.context.annotation.Bean; import org.springframework.context.annotation.Configuration; import java.util.HashMap; import java.util.Map; @Configuration public class TCPConfig { @Bean public NamedThreadFactory bossThreadFactory() { return new NamedThreadFactory("Server-Boss"); } @Bean public NamedThreadFactory workerThreadFactory() { return new NamedThreadFactory("Server-Worker"); } @Bean(destroyMethod = "shutdownGracefully") public NioEventLoopGroup workerGroup() { return new NioEventLoopGroup(8,workerThreadFactory()); } @Bean(destroyMethod = "shutdownGracefully") public NioEventLoopGroup bossGroup() { return new NioEventLoopGroup(2,bossThreadFactory()); } @Bean("nettyConfig") public NettyConfig nettyConfig(){ NettyConfig config = new NettyConfig(); Map,Object> tcpChannelOptions = new HashMap<>(); tcpChannelOptions.put(ChannelOption.SO_KEEPALIVE,true); tcpChannelOptions.put(ChannelOption.SO_BACKLOG,100); config.setChannelOptions(tcpChannelOptions); config.setBossGroup(bossGroup()); config.setWorkerGroup(workerGroup()); config.setPortNumber(10086); return config; } }