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

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


http://www.kler.cn/news/318388.html

相关文章:

  • 8月份,AI图像生成领域web端产品排行榜及产品是做什么的
  • UniApp一句话经验: px -> rpx动态转换和动态元素区域的获取
  • 前端-js例子:tab切换
  • 如何使用爬虫挖掘更多长尾关键词
  • HashMap五大核心问题总结
  • SpringMVC后续4
  • arm开发板通信
  • Goweb预防XSS攻击
  • 【算法笔记】二分查找 红蓝染色法
  • 前端——表格、列表标签
  • 【设计模式】创建型模式(三):单例模式
  • Rocky Linux 9安装mysqlclient库报错的解决方法
  • Sam Altman最新博文:智能时代将带来无限的智能和丰富的能源
  • LOGO设计新革命:5款AI工具让你秒变设计大师(必藏)
  • 16_Python的迭代器
  • 【Unity链接数据库01】Unity使用Oracle 数据库完成登录注册功能
  • Qt/C++ TCP调试助手V1.1 新增图像传输与接收功能(附发布版下载链接)
  • 每日算法1(快慢指针)
  • 实例讲解电动汽车故障分级处理策略及Simulink建模方法
  • 面试官:谈谈自己对IOC和AOP的理解? Part1
  • Unity 设计模式 之 结构型模式 -【适配器模式】【桥接模式】 【组合模式】
  • 前端读取PDF和DOCX文件(干货分享)
  • 基于深度学习的可再生能源的效率优化
  • thinkphp 做分布式服务+读写分离+分库分表+负载均衡(分区)(后续接着写)
  • 《线性代数》学渣笔记
  • ai论文写作指导有哪些?六款最火ai论文生成平台大推荐
  • AI 智能名片链动 2+1 模式商城小程序中的体验策略
  • 某文书网爬虫逆向
  • Flask建立的Web网站的can‘t open file C_Program问题的分析
  • MySQL学习笔记(持续更新中)