立即学习:https://edu.youkuaiyun.com/course/play/10634/237501?utm_source=blogtoedu
Server:65535个端口,由于其他应用占用了端口,并且系统默认1024以下的端口是不能被使用,大致可以数6400哥端口
大致连接数60000左右
如何模拟百万连接?
- 开多个客户端,要求服务器端的配置要好(JVM配置,最低8g,16核)
- 单个60000连接
- IP+PORT确定连接
- 服务端启动多个端口号(8000-8200),要是6万*200 = 1200万,考虑CPU切换,流量等问题。一般来说服务器支撑几十万连接
- 6万连接*50个连接(8000-8050),= 300万连接,使用一个客户端连接
ChannelOption.SO_BACKLOG:等待队列
ChannelOption.SO_REUSEADDE:端口马上复用,不被内核所占据
serverbootstrap.bind(port).addListener:绑定成功后的回调函数
childHandler:定时统计连接数
channelActive:TCP连接成功
channelInactive:TCP连接断开
exceptionCaught:异常
定时统计:
Executors.newSingleThreadScheduleExecutor().scheduleAtFixedRate(()->{
输出:当前连接数:atomic.get();
},0(延迟),3(每三秒记录一次),TimeUnit.SECOUND);