测评流程图
2025-07-22 14:20:09 0 举报
测评各个服务的流程图
作者其他创作
大纲/内容
(非截屏照片、手动标记)
DNS
用户点击调试
测评中心ESB
公网
HtmlPDF
Kong
指SLB公网host
monitor的接口:TransferInfoToDetailRedis
撤回举手
客户端抽题(Cata抽题)
监考流程:1、考生登陆作答,与RTN服务建立长链接2、监考登陆监控中心,与RTN建立长链接3、监考1选择一个考生A,发起监控 4、如果监考1选中的考生已退出作答,RTN返回监控失败消息,监考端显示已断开,流程结束5、RTN服务接收到监考发送的beginMonitor消息,为考生A分配房间,为考生和监考分别生成对应的房间信息,此时房间内为考生A和监考16、RTN维护房间占用信息,房间内的考生和监考者信息7、RTN通知考生A beginMonitor消息和房间信息,考生A端自动加入指定的房间,开始推流到腾讯云8、RTN通知监考1 beginMonitor消息和房间信息,监考1端自动加入指定的房间,等待接收腾讯云转送的视频流9、此时监考1端可以正常看到直播画面10、如果监考2也选中考生A,发起监控11、RTN服务检查到考生A已在房间中,将监考2维护到同一房间中,此时房间内考生A、监考1和监考212、RTN通知考生A 房间消息,考生A此时正在推流中,该消息不处理13、RTN服务通知监考2 房间消息,监考2加入指定的房间,与监考1显示相同的画面14、监考1停止监控考生A,向RTN服务发送endMoitor消息15、RTN服务接收到endMonitor消息,将监考1移除房间,此时房间内考生A、监考2,由于仍旧有人在监考,服务不做任务信息推送16、监考2停止监控考生A,向RTN服务发送endMonitor消息17、RTN服务接收到endMonitor消息,将监考2移除房间,此时房间内只有考生A,无人监考,服务向考生A推送endMonitor消息18、考生A退出房间,停止推流。房间内无人,该房间释放,供下一次监控分配9人同时监考流程与单人流程一致,服务端分配9个房间,每个考生进入一个独立的,同一监考者虚拟为9个,同时进入到9个不同的房间。
场景3:会请求Redis、OSSRediskey(DB0):checkPhoto:/tenantId/activityId/snId
SLB
内网
移动端
前端传入的参数中已经识别图片异常:黑屏、绿屏
SLB:5G
拍照(主图)
consumer拿到本地的请求文件,调试后写到本地文件(路径:/app/Coding/DebugPath)(根据语言、脚本)
assesscore
举手
消费端
RTN
Kafka消息:topic:AssessCopySerialNumberToCloud(非截屏照片、手动标记)
Redis1、获取人员信息,根据传参更新人员信息:HashSet key:$\"Monitorv2_{activityId}_{tenantId}\"2、将传入信息添加到人员的详情HashSet中,HashSet key:$\"Monitorv2_{activityId}_{tenantId}_{detailStatus}\"内部Item的key:通行证Id
OSS(上传主图,对oss至少有3次请求,最多4次请求)先删除之前的主图,再新存入
PC端
rtn是给监考官、考生主屏幕、小程序、共享屏幕推消息考生主屏幕、小程序、共享屏幕推消息收到消息后,都往腾讯云推流,监考官收到消息后加入房间,等待接收腾讯云转送的视频流考生登陆与rtn建立链接,rtn会写redis监控:roomid=租户id+活动id+snid 1个人1个房间id推流:trtc引用的sdk发了http请求公告:监考官给所有考生发通知,不用roomid,是通过socket发送(Redis里边存的活动,活动下存所有人的socketId???这个待确认)
开启新monitor
阿里内部网络交换机是VSwitch
catchoice(IIS站点)
Redis1、获取活动信息2、更新图片地址、活动id、snidRediskey(DB2):Monitorv2_activityId_tenantId
进行以下判断:1、人脸数>1,检测到多人2、手机检测是否开启,开启则判断手机数量 >0,违规物品(手机)3、本张照片没人,去redis取前2张,是否连续3张都没人,检测到消失过久;本张照片有人,去redis里取最新两张图片地址(会把最新的图片地址覆盖redis里边最旧的那张,保证redis里边只有2张),然后请求oss下载下来,进行长度对比,长度一样,再检查md5,检测到照片异常4、开通人脸比对,检测是否换人
monitor
snat
建立长链接
Kafka(保存举手记录):Assess_AnswerData_Topic
发kafka异常
数据库:AssessmentUser更新状态,给异常人员打标记dbo.AssessmentUserExamResult_UpdateDetectResult
客户端答题上传视频、音频文件
realtimechoice(k8s)
Kafka:Assess_SendToAssessCore_Topic
1、是否开启违规物品检测,手机数量>0,违规物品(手机)2、是否开启耳机检测,耳机数量>0,违规物品(耳机)
Coding部署在k8s1个pod里边有4个镜像:web、consumer、sqlserver、mysql
web接收到请求后,会写入本地文件(路径:/app/Coding/ConsumePath),文件写成功后,会轮询拿调试结果
启动chrome后
消费端更新到V5:更新主图的拍照状态
开启新流程
异常照片都会上传到OSS1、上传到many2、illegalarticles3、消失过久:disappear照片异常:pterror4、换人:substitution
Redis:获取redis中是否有loginCatch,有则更新
snat:绑定公网IP
取活动信息
cdn
中途换人
消费端:AssessCoreKafka
OSS(存储pdf)
Kafka:topic:AssessmentMonitorDetectServerTopic
kong
检测到多人、消失过久、照片异常、违规物品(手机)、违规物品(耳机)
Redis
客户端抽题(PPI抽题)cloudTestType=PPICat
Kafka(保存撤回举手记录):Assess_AnswerData_Topic
OSS:拿主图
Redis:更新状态,给异常人员打标记
KafkatopicAssess_SendToAssessCore_Topic
消费端:部署在阿里云
transfer部署在k8s
云上:Kafka:topic:assess_object_detect_topic
Kafka(保存过程中的作答答案):Assess_AnswerData_Topic
前台填写用户信息后,提交个人信息
抓拍(非主图)
kong上配置路由插件socket链接通过sId路由
前三轮都是每个维度抽取1题,社会称许性的题目会抽1题第四轮开始,就要判断哪个维度信息量达到8,达到则停止抽题
OSS(存音频、视频文件)
图片识别服务:检测图片是否有异常
Redis:保存用户信息+主图
Redis:更新用户信息、更新作答进度
1、删除之前的主题:先查,查到就删,查不到就跳过2、插入新的图片3、get图片是否真的上传上去
monitor内存中算当前作答题目的进度
数据库:dbo.AssessCenter_InsertAssessCenterErrorInfo
心理风险Plus抽题cloudTestType=MentalRiskV2Plus
是
数据库:AssessmentUser更新主图的头像状态:dbo.AssessmentSerialNumber_UpdateIsSavePhoto
V5:记录作答状态异常流水
Kafka:AssessmentMonitorDetectServerTopic
Kafka:PC端、移动端都是发消息、消息里边包含活动配置、作答情况topic:Assess_Abnormal_Image_Detection_Topic
videocloud
AssessCore
Kafka消息:topic:AssessCopySerialNumberToCloud
监考
所有图片都要记录数量到数据库:dbo.AssessmentUserExceptionCount_InsertOrUpdate
客户端抽题(CataPlus抽题)cloudTestType=
考生
测评前台监控提交答案
OSS
照片异常上传到OSS1、millegalarticles2、mheadset
redis(按邮箱存用户抽题记录)
消费端:更新到V5库
Oss:插入图片
公告:监考官给所有考生发通知,通过socket发送
0 条评论
下一页