自定义博客皮肤VIP专享

*博客头图:

格式为PNG、JPG,宽度*高度大于1920*100像素,不超过2MB,主视觉建议放在右侧,请参照线上博客头图

请上传大于1920*100像素的图片!

博客底图:

图片格式为PNG、JPG,不超过1MB,可上下左右平铺至整个背景

栏目图:

图片格式为PNG、JPG,图片宽度*高度为300*38像素,不超过0.5MB

主标题颜色:

RGB颜色,例如:#AFAFAF

Hover:

RGB颜色,例如:#AFAFAF

副标题颜色:

RGB颜色,例如:#AFAFAF

自定义博客皮肤

-+
  • 博客(24)
  • 收藏
  • 关注

原创 【Java + Elasticsearch全量 & 增量同步实战】

本文介绍了使用Java+Elasticsearch构建高性能合同搜索系统的实践方案。系统采用"三角架构"设计:MySQL作为权威数据源,Elasticsearch负责快速搜索,ClickHouse处理统计分析。通过宽表设计减少查询时的join操作,实现"空间换时间"的性能优化。详细说明了全量初始化历史数据的Java实现,包括分批处理和批量写入策略;同时介绍了增量同步机制,涵盖新增、更新和删除操作的处理方法。文章还提供了合同搜索的Java示例代码,展示如何实现全文搜索和

2025-12-18 14:11:17 329

原创 【算法复杂度(时间 & 空间)】

算法复杂度教程:时间复杂度(O(1)/O(logn)/O(n)/O(n²)/O(2ⁿ))和空间复杂度详解,涵盖分治算法(归并/快排)的O(nlogn)分析。讲解复杂度与CPU/内存/线程池的关系:CPU密集型任务线程数≈核心数,IO密集型可适当增加。数据库索引设计(B+树)如何利用O(logn)优化查询。提供常见算法复杂度对照表,指导工程实践中数据结构选择和资源优化。

2025-12-11 10:00:00 1564

原创 【mysql存储引擎为什么选择B+树】

本文系统介绍了数据库索引使用的树结构演进过程,重点分析了MySQL采用B+树索引的原因。从二叉搜索树(BST)开始,逐步讲解了AVL树、红黑树、B树到B+树的发展历程,通过图解对比了各树结构的优缺点。特别指出:二叉类树因节点少导致树高IO多,而B+树通过多路平衡、数据仅存叶子节点、叶子链表连接等设计,完美解决了磁盘IO高和范围查询效率问题。最后对比了InnoDB和MyISAM引擎的索引实现,证明B+树是最适合数据库的索引结构,具有IO最少、范围查询快、适合海量数据等核心优势。

2025-12-10 15:57:45 545 1

原创 【多线程安全到高并发实战】

本文系统解析Java CompletableFuture框架的多线程用法及高并发解决方案。主要内容包括:1. CompletableFuture基础用法,支持异步计算、链式调用和异常处理;2. 线程安全原理基于CAS和TreiberStack无锁机制;3. 防超卖四大方案对比:悲观锁(简单但性能差)、乐观锁(需重试)、数据库原子操作(推荐方案)、Redis原子操作(极致性能);4. 最佳实践建议,包括线程池规划、异常处理和任务编排技巧。文章通过通俗比喻和代码示例,帮助开发者理解不同场景下的技术选型要点,特别

2025-12-04 23:24:28 815

原创 【VIP(虚ip)高可用架构】 部署教程(Java + Vue + Nginx + Keepalived)

该文档描述了一个高可用Web服务架构方案,主要特点包括:1)通过Keepalived实现单VIP自动切换;2)Nginx负载均衡配合ip_hash保持会话;3)前后端完全分离部署;4)Java后端与Vue前端独立运行;5)包含详细的健康检查机制和故障转移流程。架构采用主备双节点设计,涵盖环境准备、服务部署、配置细节及验证方法,实现单点故障自动恢复,确保服务持续可用。

2025-10-30 17:49:26 314

原创 【英语语法基石】详解两大核心句型:主谓宾与主系表(附实战对比)

英语语法中,句子结构主要分为两种基本类型:主谓宾(SVO)和主系表(SVC)。主谓宾结构(SVO)用于表达具体的动作或行为,通常包含主语(执行者)、谓语(动作)和宾语(动作的承受者)。状语、地点和时间等成分可进一步补充说明。主系表结构(SVC)用于描述状态、性质或感受,不涉及具体动作。包含主语、系动词(如 be、feel、seem)和表语(说明主语的特征)。两种句型分别适用于不同语境:有动作时用主谓宾,无动作表示状态时用主系表。

2025-10-14 15:05:02 1743

原创 【Redis集群搭建】Redis Cluster实战部署全攻略(含配置文件与命令详解)

本文详细介绍了如何从零搭建一个三台服务器、主从互备的高可用Redis Cluster集群。主要内容包括:集群规划(3主3从互备)、基础安装配置、节点目录创建、防火墙设置、集群创建命令及验证步骤,并提供了常见问题解决方法。该方案可有效避免单点故障,实现自动主从切换,具备良好的扩展性和容错能力。文章特别强调生产环境必须配置密码验证和防火墙策略,同时提供了集群健康检查和故障演练的方法,是一套完整的Redis高可用集群部署指南。

2025-10-11 16:15:56 1326 2

原创 【MinIO 数据迁移 + Keepalived VIP 主主备份高可用】

MinIO数据迁移与高可用部署指南 本文提供MinIO数据迁移与高可用配置的完整方案,涵盖: 数据迁移:使用mc工具完成单机/EC集群的全量/增量迁移(mirror/diff),包含桶策略同步与校验流程。 Keepalived配置:主备节点安装、健康检查脚本(端口/HTTP探活)及VRRP参数详解(virtual_router_id/priority/auth_pass)。 VIP定位:通过ip addr、arping或交换机ARP表快速判断VIP归属。 故障排查:常见问题清单(VIP漂移失败、脚本权限、防

2025-09-26 17:02:34 1023 2

原创 【生产环境MinIO版本升级+主备方案脚本】

摘要:MinIO版本升级+主备方案脚本(2021→2025)需通过数据迁移实现兼容。关键步骤:1)新建/data/minioData_v2目录;2)保持老版本运行并安装mc客户端;3)使用mc mirror工具跨版本同步数据;4)启动新版本验证数据;5)切换流量后保留老版本作为回滚。该方案通过目录隔离和工具迁移确保数据安全,支持增量同步,完整保留原数据直至新版本稳定。

2025-09-10 17:09:31 476

原创 【Java 多线程处理 PDF 转PNG】基于 Spring @Async + CompletableFuture

摘要:本文介绍了使用Spring的@Async注解实现PDF多页并行处理的方法。通过配置ThreadPoolTaskExecutor线程池控制并发量,将每页渲染为PNG图片并上传服务器的过程封装为异步任务。核心步骤包括:1)定义带@Async注解的页处理方法;2)循环触发异步任务;3)用CompletableFuture.allOf等待所有任务完成。关键优化点包括控制线程池大小(建议4-8个线程)、避免重复加载PDF文档、合理设置图片DPI等。该方案通过异步并行处理显著提升了大批量PDF页面的处理效率。

2025-09-02 11:34:31 450

原创 【RabbitMQ实现延迟任务+重试机制】Springboot+RabbitMQ+多线程消费。1.失败会重试三次2.超过最大重试次数就写表+@Scheduled查询、执行业务、删数据,3.发异常短信

本文介绍了基于RabbitMQ实现延迟任务和异步处理的方案。通过TTL+死信队列机制实现延迟任务,确保消息不会因服务重启而丢失。方案包含完整的SpringBoot实现示例,包括多线程消费、失败重试和补偿处理机制。RabbitMQ能有效应对业务场景中的延迟执行、削峰处理和失败重试需求,提供异步处理能力并保障消息可靠性。核心流程为:消息存入延迟队列→TTL到期→死信队列→消费者处理,支持多线程并发消费和自动重试机制。

2025-08-28 17:27:29 514

原创 【若依框架】基于springboot+mybatisplus的快速开发框架

若依(RuoYi)是一个基于SpringBoot+Vue的前后端分离快速开发框架,整合了权限管理、代码生成等企业级功能。它开箱即用,适合Java新手、项目开发者和学习者使用,能帮助快速搭建后台管理系统。框架采用SpringBoot+MyBatis-Plus+SpringSecurity后端和Vue+ElementUI前端,支持MySQL数据库。只需下载源码、配置数据库、启动前后端三步即可运行,默认提供完整的管理功能。该框架既可节省开发时间,又能帮助理解前后端分离架构,是学习企业级开发的优质脚手架。

2025-08-25 10:03:31 555

原创 【运营商双线路网络高可用】核心设备AD+业务服务器

摘要:通过运营商双线接入结合应用交付设备(AD)实现高可用智能调度方案。核心架构采用单内网服务器IP(192.168.1.10)映射双运营商公网IP(1.1.1.1/2.2.2.2),AD设备负责NAT转换、健康检查和智能调度。实现功能包括:DNS智能解析(运营商/地域识别)、健康检测自动容灾、负载均衡。典型流程中,AD设备作为统一入口,根据实时检测结果动态分配电信/联通线路,确保业务连续性。方案需配备支持双线接入的负载均衡设备,并配置公网IP映射与智能DNS解析,实现自动切换和高可用性。

2025-08-20 11:30:00 584

原创 【MPJBaseMapper】更优雅写SQL的开源工具

MyBatis-Plus-Join(MPJ)扩展了MyBatis-Plus的连表查询能力,通过MPJBaseMapper提供类似QueryWrapper的链式语法实现多表关联查询。核心功能包括支持LEFT/INNER/RIGHT JOIN、DTO投影、分页、逻辑删除及对象映射等。开发者只需继承MPJBaseMapper,即可使用selectJoinList/selectJoinPage等方法,配合MPJLambdaWrapper构建查询条件。MPJ优势在于类型安全、减少模板代码、统一开发风格。

2025-08-14 16:39:00 974

原创 【多页文件上传优化】首页快速返回,其余后台多线程异步处理 。涉及技术:springboot+多线程[自定义注解线程池]+MPJBaseMapper+PDFBox

摘要:本文介绍了一个PDF转图片的高效处理方案,采用"同步处理第一页+异步处理剩余页"的模式。核心流程包括:1)用户上传PDF后立即返回第一页图片;2)后台异步处理剩余页,每页最多重试3次;3)生成的图片上传服务器并存入数据库;4)前端查询时根据图片数量智能选择JOIN或批量IN查询方式。该方案通过CompletableFuture实现异步处理,结合PDFBox渲染和自动重试机制,既保证了用户体验的流畅性(首屏快速展示),又提高了系统整体处理效率。异常处理和日志记录机制确保了系统的稳定性

2025-08-13 17:14:30 521

原创 【注解跳过机制】Spring Boot 登录权限校验拦截器教程

摘要:本文介绍了一个基于SpringBoot的登录权限拦截器实现方案,通过自定义注解@IgnoreAuthentication支持白名单机制,结合Redis缓存优化性能。拦截器流程包含:静态资源过滤、注解校验、Token有效性验证、操作超时检查和企业状态校验。系统采用Redis存储用户信息,支持配置化超时时间,并提供了企业状态校验等业务逻辑。方案支持扩展为多平台token校验、权限控制等功能,适用于中大型B端系统,具备完整的登录校验机制和良好的可扩展性。

2025-08-05 11:14:05 780

原创 【注解+aop 记录日志】关于如何使用自定义 @Log 注解实现 Spring AOP 操作日志记录功能的详细教程

📝【SpringAOP+注解实现操作日志教程】 通过自定义@Log注解结合SpringAOP,实现低侵入式操作日志记录。只需在方法上添加注解(如@Log(title="新增用户", businessType=INSERT)),即可自动记录方法参数、返回值、异常等信息,无需手动编码。 🔧 核心实现: 定义@Log注解配置模块名、操作类型等 编写切面类LogAspect,通过@AfterReturning和@AfterThrowing拦截目标方法 利用JoinPoint获取上下文信息(类

2025-08-04 17:40:03 922

原创 【接口限流】基于注解Spring Boot 项目 + AOP + Redis 实现接口限流功能

本文介绍了一种基于Redis和AOP的接口限流方案,通过自定义注解@RateLimit实现请求频率控制。核心设计包括:1) 使用注解声明接口限流规则(最大请求数、时间窗口等);2) 通过切面拦截请求,在Redis中维护计数器;3) 支持IP或用户ID维度的限流控制。该方案具有无侵入、高性能、秒级精度等优点,适用于防止恶意刷接口的场景。文中提供了完整的代码实现,包括注解定义、切面逻辑及使用示例,并提出了动态配置、降级处理等扩展建议。

2025-08-04 14:33:36 1265

原创 【接口鉴权】接口鉴权机制(基于对称密钥加密)

接口鉴权流程摘要:通过密钥对实现安全调用,用户注册时分配id和secret。调用接口时前端用secret加密随机数生成签名sign,连同id和random传至后端。后端通过id获取secret,用相同算法生成签名比对验证。若一致则鉴权成功,否则返回401未授权。该方案有效防止请求伪造,保障接口安全。

2025-07-29 17:27:56 336

原创 【防重复点击】防止全局关键业务按钮重复点击,多次触发请求,可以从 前端(主)+ 后端(辅) 两方面控制

本文介绍了前后端防重复提交的解决方案。前端主要采用四种策略:1)禁用按钮;2)防抖处理;3)节流处理;4)Vue全局指令封装。后端则强调必须实现幂等控制,推荐两种方案:1)幂等Token机制;2)基于Redis的分布式锁控制,重点对比了手写Redis锁与Redisson框架的差异,建议优先使用Redisson实现分布式锁,因其具备自动续期、可重入等优势。文章最后指出,防重复提交需要前后端协同处理,前端仅能减少重复请求,关键业务必须依赖后端控制。

2025-07-29 16:13:16 508

原创 【国产化】国产化系统 openEuler 上安装 Redis

openEuler系统安装配置Redis指南 本文介绍在openEuler系统安装Redis的完整流程:1)通过dnf安装Redis;2)修改配置文件(绑定IP、关闭保护模式等);3)启动服务并验证(redis-cli ping返回PONG即成功);4)配置防火墙放行6379端口。针对修改端口后服务启动失败的常见问题,提供了SELinux端口策略的解决方案:使用semanage port命令管理Redis端口白名单,并通过systemctl restart redis重启服务生效。文中特别标注了远程访问的安

2025-07-29 10:39:34 669

原创 【高可用】Keepalived + Nginx │ 两套(主 + 备)解决nginx单点问题。(用nginx负载两套服务时,如果nginx宕机会造成后续服务不可达,失去高可用性)

Keepalived高可用方案核心原理是基于VRRP协议,通过主备节点间的虚拟IP(VIP)漂移实现服务不中断。主节点(MASTER)绑定VIP对外服务,备节点(BACKUP)通过心跳监测主节点状态,当主节点故障时自动接管VIP。Keepalived通过优先级机制(priority值)、健康检查脚本(如检测Nginx进程)和状态监控(默认每秒心跳)确保高可用性。典型部署包含两台服务器安装Nginx和Keepalived,配置相同的虚拟路由ID和认证密码,主节点优先级更高。当主节点服务异常时,VIP会自动漂移

2025-07-28 15:51:05 335

原创 【业务高可用,多并发】nginx负载均衡 实现服务集群 保证业务连续性,实现高可用的需求

摘要:本文介绍了基于Nginx反向代理的负载均衡实现方案。通过配置upstream模块采用ip_hash算法,确保同一IP请求分配到固定后端服务器(xx1、xx2)。系统实现HTTP到HTTPS自动跳转,在443端口完成SSL/TLS终止后,将请求分发至内网服务器集群。配置文件展示了完整的负载均衡设置,包括SSL证书路径、协议版本及加密套件等安全配置,同时关闭了访问日志以提升性能。该方案有效实现了流量分发、会话保持和安全通信的一体化处理。

2025-07-28 10:02:49 339

原创 【单点登录】springSecurity +redis

本文介绍了基于Spring Security和Redis实现单点登录的核心流程:1. 配置SecurityFilterChain放行/login请求;2. 通过JwtAuthenticationTokenFilter拦截所有请求,从token中获取用户信息并存入SecurityContext;3. 登录时生成随机token并存入Redis,同时维护userId-token映射关系;4. 新设备登录时删除旧token实现强制登出,确保单点登录。关键点包括:token验证、用户信息存储、自动登出机制等,通过Re

2025-07-24 16:32:04 308 1

空空如也

空空如也

TA创建的收藏夹 TA关注的收藏夹

TA关注的人

提示
确定要删除当前文章?
取消 删除