项目实战 (15)--- 代码区块重构及相关技术落地
目录
背景
思想与技术方案
概述
路由及socket 封装模式
技术描述
方案 1
方案2
各类连接资源管理封装
vector db connection
cache management
web socket 管理
service 封装
代码实现
service 层
router层
resource层
小结
背景
到目前为止,视频搜索系统功能及并行优化已基本完成。通过视频高效预处理,缓存机制,及良好的并发粒度,整个系统可以较好的支撑视频搜索功能。但因为我们的代码越来越多,function的编程模式可能已经不能再很好的提供我们可维护性。举个例子,你需要 connect vector db, connect cache, manage video filesystem,同时使用了多个 samphore,query 分析算法也比较复杂,录入video code 逻辑也是非常长。在这种情况下,部分核心代码由function转为OO 是必须的,因为需要统一管理,并有一定的容错机制。散落在各处的fuction 使你眼花缭乱,最终使系统查错排障变得异常复杂。虽然我们在前面的部分功能里用了OO的一些设计思想,比如单例,装饰者,桥接等。但是还是不足以维护一个真正意义上落地的商用搜索系统。如果以后要在这个基础上扩展功能,整个逻辑会显得异常复杂。为什么我一开始不用OO?原因很简单,最初我们聚焦在算法和功能上,合理的组件选型及优秀的插入,搜索设计及算法是原型设计的重中之重。如今,主功能已经实现,为了后续维护与扩展,需要暂时停下我们的步伐,以退为进,将kernel