connector
- 业务分离,connector把业务分离到后端模块(设备验证等)
- 上线缓存
- 线程池隔离,消息处理的每个步骤都有一个线程池
- CheckMessageProcessor
- RequestProcessor
- ResponseProcessor
- LoginProcessor
- heartbeatProcessor
- notifyEventProcessor
- highDelayMethodProcessor
- rpcProcessor
- GC 优化,调整新生代内存大小,使用CMS垃圾回收器(原来是ParNew+parallelOld)
- 线程池队列由20000调整到20,减少无效请求(5秒)
原因
- 设备超时后会重新上线(连到新的connector),会把之前辛苦建立的连接踢掉。设备请求不停的超时,就会不停的重连,导致系统的换腿负荷很高。
- dispatcher是同步的,导致大量请求阻塞在了dispatcher(connector多于dispatcher),后面dispatcher修改成异步。
后果:
- 系统在满负荷运转,设备有效上线数量增长很慢(很多重连上线,换腿请求)
- 过载防护(禁止新设备连接)
- 内存监控
- 允许连接使能开关
- 允许的总连接数
- 监控
- 接口tps
- 机器资源,内存,io,disk,cpu
- 在线数量
- api监控(total, 95th,99th,averageTime,count,errorCount)
- GC(count, maxRealTimeElapsed,sumSquareRealTime,totalByteReclaimed,totalRealTimeElapsed)
- 防灾
- 不同的上线策略(Strict, basic, simple),异步请求
- 上线缓存