当前位置: 首页 > news >正文

项目实战 (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

相关文章:

  • 北京网站建设多少钱?
  • 辽宁网页制作哪家好_网站建设
  • 高端品牌网站建设_汉中网站制作
  • (k8s)kubernetes 部署Promehteus学习之路
  • [Redis][List]详细讲解
  • Elasticsearch 应用实战:从基础到高级实践
  • Radware 报告 Web DDoS 攻击活动
  • 图书管理系统小程序的设计
  • 【autoware】编译时候出现“没有那个文件或目录 20 | #include <pcl/point_types.h>“错误
  • ChatGPT 4o 使用指南 (9月更新)
  • WebServer:buffer
  • 某省公共资源交易电子平台爬虫逆向
  • Spring Mybatis PageHelper分页插件 总结
  • 【JVM原理】运行时数据区(内存结构)
  • Open3D 利用点云的曲率密度提取特征点【2024最新版】
  • Linux1-ls,cd,pwd
  • Qt 模型视图(二):模型类QAbstractItemModel
  • 【自动驾驶】决策规划算法(一)决策规划仿真平台搭建 | Matlab + Prescan + Carsim 联合仿真基本操作
  • 【面试系列】之二:关于js原型
  • Android Studio:GIT提交项目到远程仓库
  • CSS 专业技巧
  • IOS评论框不贴底(ios12新bug)
  • Java程序员幽默爆笑锦集
  • Joomla 2.x, 3.x useful code cheatsheet
  • Linux中的硬链接与软链接
  • mysql innodb 索引使用指南
  • php ci框架整合银盛支付
  • Redux系列x:源码分析
  • Terraform入门 - 1. 安装Terraform
  • uva 10370 Above Average
  • Vue官网教程学习过程中值得记录的一些事情
  • Zsh 开发指南(第十四篇 文件读写)
  • 多线程事务回滚
  • 分类模型——Logistics Regression
  • 基于HAProxy的高性能缓存服务器nuster
  • 基于Javascript, Springboot的管理系统报表查询页面代码设计
  • 记录:CentOS7.2配置LNMP环境记录
  • 聊一聊前端的监控
  • 前端路由实现-history
  • Redis4.x新特性 -- 萌萌的MEMORY DOCTOR
  • ​虚拟化系列介绍(十)
  • (1)无线电失控保护(二)
  • (12)Hive调优——count distinct去重优化
  • (2)Java 简介
  • (2021|NIPS,扩散,无条件分数估计,条件分数估计)无分类器引导扩散
  • (52)只出现一次的数字III
  • (Matalb回归预测)PSO-BP粒子群算法优化BP神经网络的多维回归预测
  • (Repost) Getting Genode with TrustZone on the i.MX
  • (附源码)小程序儿童艺术培训机构教育管理小程序 毕业设计 201740
  • (转)Google的Objective-C编码规范
  • (转)Oracle 9i 数据库设计指引全集(1)
  • .bat批处理(十):从路径字符串中截取盘符、文件名、后缀名等信息
  • .gitignore文件—git忽略文件
  • .NET 4.0网络开发入门之旅-- 我在“网” 中央(下)
  • .NET 4.0中的泛型协变和反变
  • .Net Core中Quartz的使用方法
  • .Net Redis的秒杀Dome和异步执行
  • .NET 中让 Task 支持带超时的异步等待