课前语言提醒限流
背景
课前语言提醒,第三方目前支持最大的并发量是200,目前平台高峰期并发量会在2000。
需求
课前提醒时,不在同一时间推送提醒消息,间隔1s或多s提醒,分批次处理消息推送。
测试目的
1、验证分批次处理推送消息,即按时间随机散列分布在5分钟
2、验证课前提醒推送到消息中心接收,再到呼叫服务中心,推送消息无延迟、不重复、不丢失,呼叫成功率100%,不出现课前提醒在上课时间之后的情况。
3、测试环境下同一时间上课学生数多大时会出现性能问题
测试分析
每隔半小时系统定时扫描lessons表,将符合课前提醒条件的数据同步到mongodb计划表,最终将这些消息分批次推送给消息中心,消息中心接收这些消息,保存在t_message_log_bus_buffer表,发送给呼叫中心,待呼叫完成后,调用呼叫中心的接口,收集打电话事件的数据,保存在t_msg_log表。分析表中数据得出测试结果。
测试计划
准备多组同一时间上课的数据,统计打电话事件结束后表中相关数据
准备测试数据
测评课数 |
上课时间 |
1000 |
18.01 |
1500 |
18.31 |
2000 |
19.01 |
2500 |
19.31 |
3000 |
20.01 |
lesson表的数据需要符合下面条件才可以推送给消息中心:
SELECT * FROM lessons WHERE lessons.client_state = 0 AND lessons.tea_id IS NOT NULL AND lessons.is_close = 0 AND lessons.deleted_at IS NULL and lessons.les_start_time like '2019-05-14 19:01%' and lessons.les_type='test-lesson' and les_subject ='语文'; |