早期使用的搜图为同步调用api逐个搜索,之前改为服务部署在外网服务器中基于asyncio和socket异步通讯,运行几天无明显问题,考虑到安全性将连接方式由socket改为了websocket,并使用Nginx进行反代实现wss连接
为什么要做该更改:
搜图的主要瓶颈在于api的调用,由于搜图引擎大部分都在外网,所以国内连接较慢甚至无法连接,将服务部署在海外服务器可大大提高搜图速度,再加上同步改为异步可并发执行多个api的搜图,搜图效率得以大大提高
缺陷:
同步方案虽然速度较慢但是能对上一个搜图结果进行判断,从而只需执行部分流程,而异步多流程并行导致难以管理,但这个缺陷并不是很严重