业务逻辑:
多个探头通过柜子和服务器连接并通讯,一个柜子对应一个tcp链接,上线时初始化数据把索要数据的命令存在session里面,然后第一次调用函数后,会进入调用闭环一直同步数据
测试情况:
gateway,但是gateway到businessworker出现丢包,查看状态为busy
问题及分析:
负载和预期相差甚远,之前的预期是一个进程起码保证1000台柜子100%成功率的数据同步,开10个进程负担差不多10000台柜子[实际可能不是这样简单的数学计算,大概思路这样],但目前相差甚远,才20台柜子,5分钟成功率就开始掉了
已采取的优化措施:
1,因为业务负担比较重,之前剥离过业务逻辑部分,效果很差,等于把压力集中到一个地方,直接就压垮了,完全没法儿用,现在放回主进程了,后期多开进程,大家平均负担[业务剥离,试过,否定]
2,目前注释掉了触发报警和报警恢复相关的数据库全部操作
3,redis限制了0.5秒上线一个柜子,避免扎堆上线,分别是
1,一次生成全部定时器[不是一次性的],没有周期定时器,控制好时间差,等于一个探头一个定时器
2,只生成周期定时器[不是一次性的],触发后循环生成探头定时器[一次性]
3,生成周期定时器[一次性的