人脸识别服务器架构设计

临时的遐想设计,可能不够成熟,欢迎大家点评

1.网关连接状态服务器,网关定期向状态服务汇报它的client数目(状态包),状态服根据连接数目或者收到状态包的时间差来决定网关的繁忙状态,当client连接进来的时候,给出最空闲的网关
2.网关连接推理服务器,推理服务器定期向网关汇报一个状态包,网关通过时间差和推理服务器上的任务队列来确定推理服务器的繁忙
3.客户端连接上来,先从状态服获取对应的网关ip端口,然后连接网关,client和网关定期发送心跳
4.新增用户:客户端发送新增消息(user_photo, user_id)到网关,网关获取一个最空闲的推理服务器,将新增消息(user_photo, user_id, session_ptr, sessioni_id)推送给推理服务器, 推理服务器推理完成后,将结果(result ,user_id, session_ptr, sessioni_id_id)投递给网关,网关收到后,推送给DB服做数据库的修改,数据库修改完后,将修改结果(statu, session_ptr, sessioni_id)投递给网关,网关找到, session_ptr, sessioni_id对应的client(用session_ptr(uintptr_t类型)强制转乘session *类型,并且session_id对的上,就认为是这个session,这时候,session管理类,不需要加锁),将消息投递给client
5.识别用户:收到图片,推理获取特征值,特征值发送给网关,网关投递给DB做数据比对,获取相似度最高的数据,发送这个数据的user_id给网关,网关发送给client
6.可以拓展成任意人工智能推理的服务器,网关和推理服务器可以堆加很多个,DB服务器可以拓展拆分成普通的各种业务逻辑服务器

在这里插入图片描述


版权声明:本文为weixin_42038860原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。