news 2026/4/22 8:46:26

skeyevss-performance 设备上下线写库的批量合并代码实现

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
skeyevss-performance 设备上下线写库的批量合并代码实现

试用安装包下载 | SMS | 在线演示

开源项目地址:https://github.com/openskeye/go-vss

背景

设备/通道上下线可能短时间爆发(网络断联、批量重启、心跳风暴)。若每次 SIP 事件都立即请求一次 DB RPC,会把 DB 连接与写入 IOPS 打满,并放大锁竞争。本仓库对在线状态变更做「先攒队列 Map,再按秒批量 flush」。

项目中的做法

1. 事件入口:SetDeviceOnlinechannel

各逻辑将DCOnlineReq写入 channel;SetDeviceOnlineStateLogic主循环读到后,以DeviceUniqueId(或通道维度)为键SetDeviceOnlineStateUpdateMap。同一键多次翻转时,后写覆盖前写,自然合并抖动。

2. 批量 flush:proc每秒一次

proctime.NewTicker(time.Second)

  • 遍历 Map,按设备 / 通道在线 / 离线分成四个切片;
  • 分别go setDevice(...)/go setChannel(...)批量更新
  • 最后Clear()整个 Map,进入下一秒。

心跳超时

REGISTER 下线

通道状态

SetDeviceOnline

DeviceOnlineStateUpdateMap
覆盖合并

Ticker 1s

聚合四类切片

setDevice / setChannel
批量 RPC

Map.Clear()

要点

  1. 延迟与吞吐的权衡:状态落库最坏延迟约1 秒;换得的是写合并更低 DB QPS。对大屏「在线数」类展示通常可接受。
  2. 最后一次覆盖:若 1 秒内同一设备「上→下→上」,Map 中只保留最后一次,flush 时可能少一次中间态写入,这是性能优化常见取舍。
  3. 与 Catalog 联动setDevice内对下线设备会停止 Catalog定时(代码后续逻辑),避免离线设备仍被周期 Catalog。

相关代码路径

  • core/app/sev/vss/internal/logic/gbs_proc/set_device_online_state_loop.go
  • core/app/sev/vss/internal/types/types.goSetDeviceOnlineDeviceOnlineStateUpdateMap
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/4/22 8:33:51

Windows Cleaner实战指南:如何科学管理系统空间与内存资源

Windows Cleaner实战指南:如何科学管理系统空间与内存资源 【免费下载链接】WindowsCleaner Windows Cleaner——专治C盘爆红及各种不服! 项目地址: https://gitcode.com/gh_mirrors/wi/WindowsCleaner 随着Windows操作系统使用时间的增长&#x…

作者头像 李华
网站建设 2026/4/22 8:28:11

3个必知技巧:用ComfyUI-Manager高效管理你的AI工作流节点

3个必知技巧:用ComfyUI-Manager高效管理你的AI工作流节点 【免费下载链接】ComfyUI-Manager ComfyUI-Manager is an extension designed to enhance the usability of ComfyUI. It offers management functions to install, remove, disable, and enable various cu…

作者头像 李华
网站建设 2026/4/22 8:27:57

别再只用普通饼图了!用Vue3+ECharts GL给你的数据大屏加个3D立体饼图(附完整代码)

用Vue3与ECharts GL打造震撼的3D数据可视化大屏 数据大屏已经成为企业展示核心指标、监控业务状态的重要窗口。传统的平面图表虽然功能完备,但在视觉冲击力和信息传达效率上往往难以满足高端展示需求。3D立体饼图以其独特的空间感和层次感,能够有效提升数…

作者头像 李华