Consul 配置踩坑:数据源切换的陷阱与排查
数字孪生模块从 local profile 切换到 Consul 配置后,视频巡查接口全部报 500:Table 'gdsw.bs_sw_cy_dh_video_inspection' doesn't exist。本地库有这张表,MCP 工具能查到,但服务连不上。本文记录了这个坑的根因、排查思路和解决方案。
数字孪生模块从 local profile 切换到 Consul 配置后,视频巡查接口全部报 500:Table 'gdsw.bs_sw_cy_dh_video_inspection' doesn't exist。本地库有这张表,MCP 工具能查到,但服务连不上。本文记录了这个坑的根因、排查思路和解决方案。
前端视频巡查任务配置页需要展示”有视频设备的测站列表 + 每个测站下的设备”。但设备表在主库,测站表在 slave 库,无法一条 SQL JOIN。本文记录了使用 @DS 注解 + Java 内存组装的跨数据源查询方案。
数据归集系统的视频流代理(FLV/HLS)由 Java Controller 实现,每路视频流占用一个 Tomcat 线程做 8KB 缓冲区转发。并发路数多时会耗尽线程池。本文记录了将 FLV 代理迁移到 Nginx 的完整方案,以及 HLS 仍需走 Java 代理的技术原因。
在数据归集系统的 TreeSelectorServiceImpl 中,大部分查询使用 MyBatis-Plus,但有 6 处使用了原生 JdbcTemplate。本文分析这 6 种场景,总结何时应该”退回”原生 SQL,以及如何在两者之间做出合理选择。
数据归集系统的树结构选择器是前端高频调用的核心接口。原本从 Redis 读取 GZIP 压缩的全量 JSON 数据,每次请求都要解压 7MB 数据再内存过滤。本文记录了将其改造为直连数据库的完整过程,包括多数据源配置、第三方 API 对接、以及踩坑经验。
为广东水文项目的一站一档与地下水模块新增 4 个 Excel 导出端点,覆盖墒情、咸情、地下水统计与地下水监测四种数据。整个过程没引入任何新依赖,完全复用项目已有的 @Excel 注解 + ExcelUtil.exportExcelToBytes() 模式 —— 写得越像现有代码,维护成本就越低。
在视频监控模块中,前端列表页需要展示在线/离线摄像头的全局总数。本文记录了在现有 /api/video/list 接口中添加 onlineCount 和 offlineCount 字段的完整设计与实现过程,包括方案对比、核心代码实现以及开发中遇到的两个典型问题。
在水文监测系统中,视频监控是重要的数据来源之一。最近在项目中遇到了一个视频代理的需求:将原本直接访问视频服务器的架构改为通过 nginx 统一代理。看似简单的改造,却在 URL 编码和 nginx 配置上踩了不少坑。本文详细记录了这次改造的全过程,希望能为遇到类似问题的开发者提供参考。