项目实战 (15)--- 代码区块重构及相关技术落地

server/2024/9/25 1:36:28/

目录

背景

思想与技术方案

概述

路由及socket 封装模式

技术描述

方案 1

方案2

各类连接资源管理封装

vector db connection

cache%20management-toc" style="margin-left:80px;">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


http://www.ppmy.cn/server/121589.html

相关文章

惊艳到你的算法

场景一 小时候去商场玩时,爸爸妈妈经常告诉我,如果你在商场走丢了,千万不要到处乱跑,站在原地不动就好了,我们会来找你的。 长大后学了计算机才明白,原来那个时候爸爸妈妈就已经会用DFS算法。如果我在原地…

招联金融2025秋招--大量招后台、算法

【投递方式】 直接扫下方二维码,或点击内推官网https://wecruit.hotjob.cn/SU61025e262f9d247b98e0a2c2/mc/position/campus,使用内推码 igcefb 投递 【招聘岗位】 后台开发 前端开发 数据开发 数据运营 算法开发 技术运维 软件测试 产品策划 产品运营…

前后端数据交互 笔记03(get和post方法)

1.解决页面网站中,中文出现乱码的情况: request.setCharacterEncoding("utf-8") response.setCharaterEncoding("utf-8") 2.给后端设置返回json数据: response.setContentType("text/json,charsetutf-8") …

Vue 项目实战4-无缝轮播图

养成好习惯,先赞后看,感谢对作者大大的支持 一、话不多说,直接上效果图: 完整视频展示链接如下: https://item.taobao.com/item.htm?ftt&id833405684191 二、实现思路 HTML结构 文档头部设置:定义…

Taro多端统一开发解决方案

Taro 文档 Taro | 多端统一开发解决方案 Taro是什么? Taro 是一个开放式跨端跨框架解决方案,支持使用 React/Vue/Nerv 等框架来开发 微信 / 京东 / 百度 / 支付宝 / 字节跳动 / QQ / 飞书 小程序 / H5 / RN 等应用。 现如今市面上端的形态多种多样&a…

Java基础知识扫盲

目录 Arrays.sort的底层实现 BigDecimal(double)和BigDecimal(String)有什么区别 Char可以存储一个汉字吗 Java中的Timer定时调度任务是咋实现的 Java中的序列化机制是咋实现的 Java中的注解是干嘛的 Arrays.sort的底层实现 Arrays.sort是Java中提供的对数组进行排序的…

自动化学习3:日志记录及测试报告的生成--自动化框架搭建

一.日志记录 1.配置文件pytest.ini:将日志写入文件方便日后查询或查看执行信息。 需要将文件处理器(文件存放位置/时间/格式等等)添加到配置文件中的【日志记录器】 # pytest.ini [pytest] # ---------------日志文件,需要配合…

状态估计算法

目录 前言一、贝叶斯滤波二、卡尔曼滤波2.1 KF简介2.2 基本线性模型2.3 KF公式推导2.3.1 预测值2.3.2 先验误差协方差矩阵2.3.3 卡尔曼增益2.3.4 最优估计值2.3.5 后验误差协方差矩阵 2.4 KF算法使用2.5 MATLAB验证2.5 Python验证 三、扩展卡尔曼滤波3.1 EKF原理3.2 MATLAB实现…