后台编程
文章平均质量分 56
学亮编程手记
学亮编程手记
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
WEB VIDEO PLATFORM 网络视频平台功能介绍
WEB VIDEO PLATFORM是一个基于、部标808、部标1078标准实现的开箱即用的网络视频平台,负责实现核心信令与设备管理后台部分,支持NAT穿透,支持海康、大华、宇视等品牌的IPC、NVR接入。支持国标级联,支持将不带国标功能的摄像机/直播流/直播推流转发到其他国标平台。流媒体服务基于@夏楚 ZLMediaKit播放器使用@dexter jessibuca播放器使用@Numberwolf-Yanlong h265web.js前端页面基于vue-admin-template构建。原创 2025-11-20 16:21:01 · 860 阅读 · 0 评论 -
docker一键部署JavaVision: 基于Java开发的全能视觉智能识别项目
在AI领域,大多数解决方案都是使用Python实现的,因此决定充分利用Java的优势来构建一个功能强大且易于集成的视觉智能识别平台。JavaVision旨在为Java开发者提供一个全面的视觉智能识别解决方案,让他们能够以熟悉且喜爱的编程语言构建出先进、可靠且易于集成的AI应用。JavaVision严格遵循最佳实践和高标准,确保项目的稳定运行,并提供可靠的数据保护和隐私保密。JavaVision是完全开源、免费并支持多平台部署视觉智能识别项目 如果该项目对您有帮助,您的star是我不断优化的动力!原创 2025-11-20 16:07:41 · 158 阅读 · 0 评论 -
Java 常见规则引擎框架基本代码示例
框架优点缺点适用场景Drools功能最全,表现力强,适合复杂业务逻辑,有可视化工具。学习曲线较陡,配置相对复杂。大型、复杂的企业级系统,金融风控,保险理赔等。Easy Rules极其简单、轻量,与 POJO 无缝集成,学习成本低。处理非常复杂的规则链时能力有限。中小型项目,规则数量不多且相对独立的场景,快速原型开发。MVEL灵活、高性能,作为表达式引擎非常出色。需要自行构建规则管理和执行框架。配置化的简单规则,作为其他框架的补充,或在规则逻辑需要高度动态配置时。最终建议。原创 2025-11-15 20:54:29 · 845 阅读 · 0 评论 -
Postman Tests 断言库使用案例
Postman 的 “Tests” 功能为 API 开发与测试提供了强大支持,从简单的状态码检查到复杂的响应时间和内容验证,无不显现其灵活性和强大的定制能力。通过编写和执行这些测试脚本,开发者与测试工程师能够确保他们的 API 表现符合设计预期,同时提升整体的开发效率。sourcePostman Tests:最佳实践指南。原创 2025-11-05 15:17:51 · 872 阅读 · 0 评论 -
保证数据库(MySQL)与缓存(Redis)双写一致性的4种主流实现方案
如果写多读少,数据可能被频繁更新但很少被读取,那么每次更新都去刷新缓存会造成不必要的性能浪费。在并发写操作时,如果采用更新缓存的策略,可能会出现线程A更新数据库后,线程B又更新了数据库,但线程B却比线程A先更新了缓存,导致缓存中存储的是旧数据。方案一致性保证性能复杂度适用场景Cache-Aside(更新DB+删缓存)最终一致性(推荐)高低绝大多数业务场景的首选,简单有效。延时双删最终一致性(更强一些)中中对一致性要求稍高,能容忍一定延迟的业务。强一致性(理论上)中中。原创 2025-11-04 09:16:14 · 968 阅读 · 0 评论 -
数据库(MySQL)与缓存(Redis)双写一致性如何保证?
作者为几种策略/方案做了横向对比:一致性、性能、复杂度、适用场景。首选方案:大多数读多写少的场景,从 Cache-Aside(写数据库 → 删除缓存)开始。简单且效果好。进阶增强:如果对一致性的要求高、不能接受不一致窗口,则在 Cache-Aside 基础上引入延迟双删或消息队列删除。终极方案:当系统规模大、对一致性和解耦要求高时,投入资源构建基于 Binlog 的同步方案。无论哪种方案,都要给 Redis 缓存设置合理的 TTL(过期时间)。原创 2025-11-03 20:58:31 · 793 阅读 · 0 评论 -
Spring Boot 中启用和测试 HTTP/2 代码示例
推荐使用 Undertow:配置简单,性能优秀,原生支持 HTTP/2必须配置 SSL:HTTP/2 在浏览器中需要 HTTPS多路复用优势:在需要大量并发请求的场景下,HTTP/2 性能提升明显向后兼容:HTTP/2 不改变 HTTP 语义,现有代码无需修改这个示例展示了如何在 Spring Boot 中启用和测试 HTTP/2,你可以直接运行来体验 HTTP/2 的性能优势。原创 2025-10-21 17:13:11 · 343 阅读 · 0 评论 -
HTTP/2 和 HTTP/1.1 详细对比
HTTP/1.1HTTP/2核心问题队头阻塞、冗余头部、低效连接解决了HTTP/1.1的应用层核心问题性能较差,尤其对于现代多资源网站显著提升,减少延迟,提高带宽利用率复杂度简单,易于调试更复杂,但对开发者透明现状仍被广泛支持,是兼容性的底线现代互联网的默认标准,所有主流浏览器和服务器都已支持结论:HTTP/2 是对 HTTP/1.1 的一次重大升级,它通过二进制分帧、多路复用、头部压缩和服务器推送等核心技术,极大地提升了Web性能。对于任何现代网站和应用,启用HTTP/2都是必不可少的一步。现在,原创 2025-10-21 17:09:55 · 575 阅读 · 0 评论 -
Nginx mirror 流量镜像模块:实现生产环境流量的复制
核心功能:流量镜像(或称流量影子)。工作方式:它会把客户端发来的原始请求创建一个“镜像副本”,然后异步地将这个副本请求发送到你指定的“镜像位置”。关键特性异步处理:镜像请求的处理与原始请求的处理是完全分离的。原始请求会按照正常流程被处理并返回给客户端,不会等待镜像请求的完成。无视镜像响应:无论镜像请求返回什么结果(成功、失败、超时),都不会影响原始请求的响应。客户端对镜像请求的存在是完全无感知的。低延迟影响:由于是异步的,它对原始请求的延迟影响极小。Nginx 的mirror。原创 2025-10-21 14:24:57 · 1385 阅读 · 0 评论 -
Apache Tika 文件内容分析工具介绍及使用示例
是一个内容分析工具包,可以检测,并提取它们的。tika在设计上十分精巧,单一的接口使它易于使用,在等诸多方面得到了广泛使用。Apache Tika曾经是的一个子项目,现已成为Apache顶级项目。原创 2025-10-21 14:08:07 · 1141 阅读 · 0 评论 -
Spring Boot + HikariCP + MySQL 的数据源常用配置解读
保证 max-lifetime < 数据库超时时间设置 connection-init-sql可以初始化连接状态(例如与事务配合要明确:Spring @Transactional 时通常依赖 Spring 管理事务可用于排查连接泄漏高级配置如 metric-registry、health-check 等可监控性能,但非必需source。原创 2025-10-12 02:07:55 · 761 阅读 · 0 评论 -
Hikari 连接池的复用行为及connection-init-sql初始化sql使用场景
给connection设置了sql_log_bin=0后,将connection归还给hikari,sql_log_bin=0还生效吗?答案是:不会安全生效,如果直接把Connection归还给 Hikari 连接池,sql_log_bin=0。原创 2025-10-12 02:04:52 · 318 阅读 · 0 评论 -
springboot Hikari 多数据源 + 自定义注解 + AOP 的 @NoBinlog 实现示例 (优化版)
本文介绍 springboot Hikari 多数据源 + 自定义注解 + AOP 的 @NoBinlog 实现示例,支持:2️⃣ 通用 AOP 切面3️⃣ Mapper 示例任意参数方法都可以加 支持多数据源,通过注入的 会自动获取当前路由的数据源4️⃣ 多数据源注意点如果你使用了多数据源注解(例如 ),请确保注入切面的 是你的 AbstractRoutingDataSource,切面里会自动获取当前线程绑定的数据源连接。Hikari 会安全管理连接, 在方法结束时恢复,原创 2025-10-12 01:58:44 · 237 阅读 · 0 评论 -
springboot Hikari 多数据源 + 自定义注解 + AOP 的 @NoBinlog 实现示例
本文写一个 Hikari 多数据源 + 注解 + AOP 的 实现示例,保证每个方法执行时关闭 binlog,方法执行完后恢复,同时兼容 Spring 事务和连接池。2️⃣ 编写 AOP 切面3️⃣ Mapper 使用方式 会关闭 binlog 正常写入 binlog4️⃣ 多数据源支持(可选)如果项目中使用了 AbstractRoutingDataSource 或多数据源注解,可以在切面里通过 Spring 的 注入动态获取:然后用 来保证修改的是当前方法使用的真实连接。原创 2025-10-12 01:56:00 · 440 阅读 · 0 评论 -
SpringBoot + MyBatis + MySQL 中动态控制 SQL 是否记录到二进制日志binlog (MyBatis 拦截器自定义注解版)
Target(ElementType.METHOD) // 用在方法上。原创 2025-10-12 01:54:50 · 250 阅读 · 0 评论 -
SpringBoot + MyBatis + MySQL 中动态控制 SQL 是否记录到二进制日志binlog (MyBatis 拦截器根据方法名拦截)
来在执行特定 SQL 时动态设置。原创 2025-10-12 01:48:30 · 320 阅读 · 0 评论 -
springboot 代码案例:自动判断当前 MySQL 实例是 主库 还是 从库,从而拦截sql让从库过滤delete操作
本文介绍一个完整功能,让 Spring Boot + MyBatis 应用能够自动判断当前 MySQL 实例是还是,并在执行DELETE。原创 2025-10-12 01:23:25 · 144 阅读 · 0 评论 -
springboot mybatis 代码案例:主库执行 DELETE,从库不执行 DELETE 操作
本文实现一个项目中,通过程序逻辑自动控制,从而。原创 2025-10-12 01:16:08 · 415 阅读 · 0 评论 -
springboot @Transactional注解的方法中使用了临时表导致 MySQL GTID 模式踩坑解决方案
层角色行为影响Spring自动开启事务所有 SQL 在 BEGIN/COMMIT 内触发 GTID 检查MySQL检查事务安全性拒绝包含临时表的事务GTID 复制要求事务可重放临时表不可复制拒绝执行项目是否安全@Transactional + 临时表❌ 不安全,GTID 拒绝执行无事务 + 临时表✅ 安全@Transactional + MEMORY 表✅ 安全CTE / 子查询✅ 安全关闭 enforce_gtid_consistency。原创 2025-10-04 16:03:38 · 454 阅读 · 0 评论 -
Spring Boot @CrossOrigin 跨域注解使用详解
注解是Spring Boot解决跨域问题的便捷方式。对于简单的场景可以使用注解方式,对于复杂需求推荐使用全局配置。合理配置跨域策略可以有效保障应用的安全性。原创 2025-09-24 16:16:56 · 527 阅读 · 0 评论 -
SpringBoot整合Undertow提升性能的实战配置解析
【代码】SpringBoot整合Undertow提升性能的实战配置解析。原创 2025-09-24 13:41:19 · 410 阅读 · 0 评论 -
Spring Boot 中 Servlet 相关的主要配置示例
Bean这种方式常用于集成监控工具、报表组件或遗留系统的 Servlet。原创 2025-09-24 00:46:32 · 418 阅读 · 0 评论 -
Maven pom中optional配置项详解及依赖调解原则
情况行为(默认)依赖会传递给下游项目依赖仅当前项目可用,不会传递当前项目和依赖项目都依赖同一包Maven 按“路径最近”原则选择版本可选依赖 + 下游未显式引入下游项目不包含该依赖<optional>是一种“克制”的设计,它让依赖管理更清晰、更可控,避免不必要的依赖传递,是构建高质量、可复用库的重要手段。原创 2025-09-23 21:20:04 · 557 阅读 · 0 评论 -
Spring 构造器注入和 @Autowired 注入的区别
构造器注入是首选的原因:不可变性:支持final字段,线程安全明确性:依赖关系一目了然可测试性:便于单元测试安全性:避免部分注入状态现代实践:符合现代Java开发最佳实践这就是为什么在我的示例代码中选择了构造器注入方式。这也是当前Spring社区和Java开发中的主流做法。原创 2025-09-22 20:49:10 · 760 阅读 · 0 评论 -
Spring AI ChatClient 代码示例
Spring AI提供了简洁的API来与各种AI模型进行交互。原创 2025-09-22 20:47:48 · 578 阅读 · 0 评论 -
Spring AI 快速上手案例:deepseek聊天可视化案例
原创 2025-09-20 21:45:13 · 977 阅读 · 0 评论 -
spring-boot-starter-data-redis-reactive 实现请求限流功能
如果 Redis 在远程服务器,或者有密码,需要在配置里补上,例如在。所以如果你的 Redis 正好运行在本机默认端口,就不需要额外配置。这样 Gateway 才能正确连接到 Redis。Spring Cloud Gateway 的。代码里确实没有写 Redis 的连接信息,但。来做计数和速率控制,所以网关必须依赖。它内部会用 Redis 的。) 默认实现就是基于。原创 2025-09-13 23:18:38 · 427 阅读 · 0 评论 -
Spring Cloud 多模块示例工程zip代码下载:Gateway 使用基于 Redis 的 RequestRateLimiter 并按 IP 限流
本文提供一个完整的(包含 Eureka 注册中心、Config Server、后端服务和 Gateway,Gateway 使用基于 Redis 的 RequestRateLimiter 并按 IP 限流),并把整个工程打包成 ZIP 文件。https://cloud.189.cn/t/Bn6nUb3uQZna (访问码:lv6a)原创 2025-09-13 23:14:25 · 262 阅读 · 0 评论 -
Spring Cloud Gateway 完整示例:基于redis实现请求限流
本文我将提供一个。原创 2025-09-13 23:05:53 · 226 阅读 · 0 评论 -
Spring Cloud Gateway 网关服务入门示例
本文我们介绍一个,从零开始展示如何搭建一个简单的网关服务。原创 2025-09-13 23:02:11 · 213 阅读 · 0 评论 -
Nginx 和 Spring Cloud Gateway 网关功能对比
实际上,在现代微服务架构中,Nginx 和 Spring Cloud Gateway 经常是协同工作的,而不是二选一的关系。互联网流量v[ Nginx (边缘网关) ] // 负责SSL、全局负载均衡、静态缓存、防刷、全局限流等v[ Spring Cloud Gateway (业务网关) ] // 负责服务路由、JWT鉴权、熔断降级、业务级限流、日志记录等v[ 微服务A, 微服务B, ... ]分工明确:Nginx:做它最擅长的事——流量代理和高性能分发,作为系统的第一道屏障。原创 2025-09-08 17:26:59 · 954 阅读 · 0 评论 -
Docker Compose 部署 RocketMQ 5.3.2
这一节介绍如何使用Docker-compose快速部署一个单节点单副本 RocketMQ 服务,并完成简单的消息收发。系统要求。原创 2025-09-08 17:04:05 · 920 阅读 · 0 评论 -
NGINX 实现请求限流:limit_req_zone和limit_conn_zone限流模块
NGINX 实现请求限流是一个非常重要且常用的功能,主要用于保护后端服务免遭过多请求的冲击,防止服务器过载、资源耗尽,从而保障系统的稳定性和可用性。NGINX 提供了两种主要的限流模块:下面我们详细讲解最常用的基于请求速率的限流。这个模块使用了“漏桶”算法。想象一个水桶,无论上方流入的水流多不稳定(突发流量),下方漏出的水流速度都是恒定的(处理速率)。如果水流入太快导致桶满了(超过限制),多余的水就会溢出(请求被拒绝)。a. 定义限流规则和共享内存区 ( 块中)在 NGINX 的主配置文件 () 的 块内原创 2025-09-05 11:14:22 · 1134 阅读 · 0 评论 -
RocketMQ生产者组Producer Group介绍
生产者组(Producer Group) 是 RocketMQ 中一个用于逻辑分组的概念,其最核心的价值在于支持事务消息的回查机制,同时也提供了生产端的负载均衡和高可用能力。生产者组(Producer Group) 是一类行为相似的生产者的逻辑集合。· 回查的凭据:Broker 在发起回查时,并不知道具体是哪个生产者实例发送了那条半消息(因为生产者的实例可能很多,且会上下线)。在生产环境中,可以通过生产者组的名称来监控和追踪一组生产者的发送状态、TPS、延迟等 metrics,便于进行统一的运维管理。原创 2025-08-30 23:12:53 · 791 阅读 · 0 评论 -
Spring Boot循环依赖详解
构造器循环依赖:通过构造方法相互注入属性循环依赖:通过setter方法或字段注入相互依赖方法循环依赖:通过@Bean方法相互调用。原创 2025-08-14 22:01:14 · 468 阅读 · 0 评论 -
springboot同一个类中两个事务方法相互调用的实现方案
当两个事务方法需要相互调用时,需要特别注意事务传播行为,避免死锁或事务失效问题。原创 2025-08-10 17:42:26 · 352 阅读 · 0 评论 -
springboot自我注入解决同一个类中事务方法调用以及如何避免循环依赖的解决方案
选择哪种方案取决于你的具体场景,通常推荐使用接口分离或Setter注入方式。但这不是推荐做法,更好的方式是重构代码结构。原创 2025-08-10 17:41:44 · 445 阅读 · 0 评论 -
springboot在同一个类中非事务方法调用事务方法的解决方案
当你在同一个类中的非事务方法调用带有注解的方法时,事务不会生效,这是因为Spring的事务管理是基于AOP代理实现的,自调用会绕过代理机制。原创 2025-08-10 17:40:41 · 405 阅读 · 0 评论 -
springboot类级别使用@Transactional
注解既可以在细粒度(方法级别)也可以在粗粒度(类级别)上使用。原创 2025-08-10 17:40:07 · 1364 阅读 · 0 评论 -
Maven创建项目特定的lib目录并通过system范围引用
这种方式适用于当你有一些无法通过Maven仓库获取的JAR文件,或者在内网环境中需要将依赖与项目一起打包分发的情况。原创 2025-08-05 14:21:48 · 577 阅读 · 0 评论
分享