- 博客(113)
- 收藏
- 关注
原创 OnlyOffice:前端编辑器与后端API实现高效办公
OnlyOffice是一套开源的办公软件套件,提供文档编辑、表格编辑、演示文稿制作等功能。它支持多种文件格式(如DOCX、XLSX、PPTX、PDF等),并且通过API接口提供高度可定制的服务。前端编辑器:用户在Web浏览器中直接使用编辑器进行文档创建、编辑和协作。后端API:开发者可以通过与后端进行交互,包括文档管理、用户权限控制、实时协作等功能。前端和后端通过网络协议和Socket连接进行数据交换,实现文档编辑、同步和实时协作。
2025-02-21 18:38:23
1903
原创 Camunda流程引擎
工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。指在组织中,多个任务、活动或过程之间的顺序和控制流。这些任务通常涉及多个参与者、系统或部门,工作流的目标是将复杂的业务逻辑分解为多个可管理的逻辑段,并统一控制这些逻辑段的执行条件、执行顺序以及相互通信,从而实现业务逻辑的解耦与优化。这种方式不仅提高了业务流程的灵活性和可维护性,还促进了各个环节之间的协同工作。
2024-09-18 15:38:59
4902
原创 ubuntu22.04下搭建iRedMail邮件服务器
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。iRedMail是一个开源、免费的邮件服务器项目,基于GPL(v2)协议发布。官网 www.iredmail.org (国内不能访问),可以通过www.iredmail.com访问。iRedMail 是一个强大且开源的电子邮件服务器套件,它简化了在 Linux 和 BSD 系统上部署和管理电子邮件服务器的过程。Postfix功能:作为 SMTP 服务器,负责电子邮件的发送和接收。
2024-06-13 15:40:47
8419
8
原创 Docker搭建Jenkins 实现自动部署教程
注意:若jenkins是docker运行,若id_rsa文件(ssh私钥)不存在需要将id_rsa文件生成在容器内的jenkins_home目录下,才会生效。(docker 运行的jenkins 一定要挂载目录(如:Jenkins_home) 否则容器关闭后无法进入容器内修改default.json文件)注意:首次访问远程服务器时,需要在jenkins的docker容器内 输入命令ssh xxx.xxx.xxx.xxx 访问其他服务器。:jenkins docker 一般会自带jdk版本(自带的最方便)
2024-03-19 13:22:16
4629
4
原创 缓存三大问题:穿透、击穿、雪崩及解决方案
用户问:id=123 的用户信息→ 缓存说:没有→ 数据库说:也没有id = -1全部直接打到数据库 → 数据库瞬间可能崩掉。当某个热点 Key 过期明星直播间 100 万人同时进来→ Redis 热点 key 失效→ 全部打到数据库→ 数据库崩掉大量缓存 Key同时失效山上积雪同时掉下来 → 雪崩缓存同时过期 → 数据库崩触发场景:系统一次性加载大量缓存,统一过期Redis 宕机程序 Bug 删除大量 Key问题原因影响解决方案穿透请求不存在的数据所有请求绕过缓存打 DB。
2025-11-26 16:08:13
272
原创 Redis 高可用架构:主从复制、哨兵 与 集群 的工作机制详解
单机 = 一个人做所有事→ 简单,易理解,但单点故障主从 = 写主节点,读副本→ 减轻读压力,副本有延迟Sentinel = 老师监督 + 自动顶替→ 自动故障切换Cluster = 分组 + 每组有备份→ 高并发、高可用客户端分片 / Proxy = 家长分作业→ 灵活,但需保证管理层稳定多活 / 跨机房 = 分布式协调 + 最终一致性→ 复杂且高风险Redis 架构选择不是越复杂越好,关键是根据业务需求落地简单场景单机或主从 + Sentinel特点:部署简单、延迟低、容易理解。
2025-11-26 15:05:30
1210
原创 逻辑过期 + 异步刷新:高性能缓存策略与长耗时计算场景下的处理方案
有效期 5 分钟达到时间就让缓存消失,下个请求重新查数据库。问题来了:如果这个接口本来就慢(例如统计类接口),那在过期的瞬间可能有 500 个请求同时扑向数据库,直接把数据库压死。业务高峰期碰到缓存过期,接口延迟会突然飙升,非常危险。这里的 expireTime 只是“一个我们自己看的标记”。Redis 内部不设置真实 TTL,缓存永远存在。耗时计算 ≠ 用户必须等。缓存永不过期 + 后台异步刷新 = 用户体验稳定、系统压力更低。而逻辑过期正是这个模型里最核心、最稳妥的方案。
2025-11-26 10:30:14
1234
原创 Redis :一致性、缓存策略与高可用设计
模块原则工程建议Key 命名层级清晰,可读性高使用冒号分层,避免动态字段Big Key避免单对象过大Hash / List 拆分,防止阻塞TTL 策略避免缓存雪崩随机 TTL + 逻辑过期,热点异步刷新简单清晰、合理分层、控制规模,保障 Redis 性能与稳定性。
2025-11-25 18:14:22
788
原创 Redis 是怎么做到这么快的?一篇通俗讲懂“内存数据库”的秘密
(1)全部在内存中,速度是硬盘 100 万倍(2)单线程,无锁、无竞争、无上下文切换(3)为性能优化过的数据结构(跳表、ziplist、quicklist)(4)IO 多路复用,让单线程处理大量连接(5)协议简单(RESP),命令执行路径极短下面为你。
2025-11-25 12:50:39
182
原创 深入 Spring AI:架构与应用
Spring AI 是为 Java / Spring 团队量身打造的 AI 工程框架:核心价值在于统一抽象、模块化、结构化输出、生产级监控最适合企业级系统,尤其是需要 RAG、聊天机器人、工具调用、内容生成等场景与 Python 框架相比,优势在于 Spring 自然整合和类型安全;劣势在于 Agent 功能和生态成熟度对于希望在现有 Spring 系统中平滑加入 AI 能力的团队,Spring AI 是非常值得考虑的选择。
2025-11-24 18:21:00
269
原创 RAG 的诞生:为了让 AI 不再“乱编”
RAG全称,中文为“检索增强生成”。其核心思想是:在生成答案时,不仅依赖大模型内部的训练知识,还能够实时访问外部知识库或文档,从而生成更加准确和可靠的内容。就像一个学生回答问题,不仅依靠自己记忆,还会去图书馆查资料,然后结合记忆和查到的资料回答问题。你问模型:“请告诉我最新的新能源补贴政策。纯模型可能只靠训练记忆,回答的是过时或模糊的信息。RAG 模型会先去查最新政策文件,再结合训练知识生成答案,因此更准确。检索资料:先找到相关文档或信息。结合生成:把找到的资料和问题一起输入模型,让模型生成答案。
2025-11-24 15:59:13
1089
原创 Java Excel 导出:EasyExcel 使用详解
EasyExcel高性能基于SAX 流式解析和写入,内存占用低可以轻松处理百万行数据导出,不会 OOM易用注解式对象映射(只需定义对象类即可生成 Excel 表格样式灵活表头样式、内容样式、列宽、合并单元格等都可自定义Web 集成方便可以直接输出到浏览器下载,无需先生成文件适合企业后台系统、报表系统、统计平台等场景。
2025-11-11 17:22:08
1293
原创 EasyExcel 与 Apache POI 版本冲突导致的 `NoSuchMethodError` 异常
问题类型根本原因解决方式依赖冲突项目中同时存在多个 POI 版本排除 EasyExcel 内部 POI,只保留一个版本版本不兼容EasyExcel 与当前 POI 方法签名不同使用与 EasyExcel 匹配的 POI 版本(如 4.1.2)只用 EasyExcel→ 不要单独引入 POI。同时用 POI + EasyExcel→ 统一 POI 版本并排除 EasyExcel 自带的依赖。并不是 EasyExcel 的 bug,而是依赖管理的问题。
2025-11-11 14:39:09
1069
原创 一次由 PageHelper 分页污染引发的 Bug 排查实录
MyBatis-Plus 的分页拦截器使用Page对象,不依赖 ThreadLocal,因此天然不会污染其他查询。问题现象根因解决方案第1页正常,第2页开始查询不到用户PageHelper 分页污染了权限 SQL调整分页时机或使用MyBatis 日志中出现分页上下文仍在作用中清除或重启分页上下文多层调用混合分页与非分页查询ThreadLocal 未隔离使用新事务或 MyBatis-Plus 分页⚙️一句话总结PageHelper 的分页配置是「线程级全局状态」,一旦开启,
2025-11-07 17:56:06
989
原创 MySQL 联合索引设计中字段顺序、区分度与优化器行为详解
在日常开发中,我们常常为查询加上联合索引,例如:但在很多项目里,还能看到这种写法: 表示是否删除,只有 和 两种取值。很多人认为“查询总有 条件,索引当然要从它开始”,但事实上,这样反而可能拖慢查询速度。本文将系统讲清楚三个关键问题:联合索引字段顺序的重要性区分度(Cardinality)对索引效率的影响MySQL 优化器是否会自动调整 WHERE 条件顺序联合索引 的底层是一个 B+Tree。MySQL 检索时会按照索引定义的列顺序有序排列:因此,它遵循 最左前缀原则(Leftmost Pr
2025-11-06 18:49:19
1056
原创 Docker 部署 Node.js + Playwright 项目,实现浏览器截图、打印和下载
在 Linux 使用 Docker 部署 Node.js + Playwright 项目的方案,涵盖:Dockerfile 构建 Playwright 所需环境docker-compose 服务配置自动化部署脚本浏览器截图与打印示例通过上述方法,可以快速在国内 Linux 环境部署 Playwright 项目,并支持截图、打印和下载等自动化操作。
2025-10-30 14:33:27
1194
原创 Docker 化 Node.js 项目完整部署流程
Node.js 应用完整 Docker 化流程,包括:Dockerfile 编写docker-compose.yml 配置容器和镜像管理一键部署脚本通过这种方式,Node.js 应用可以安全、稳定地部署在 Docker 环境中,方便开发、测试与生产环境的快速迭代。
2025-10-30 14:04:37
843
原创 集群不是乱炖:一文看懂分布式系统的门道
分布式系统(Distributed System)是指:由多台通过网络连接的计算机节点组成,它们通过协同工作,共同完成同一个任务,对外表现为一个统一整体的系统。在这样的系统中,每个节点(通常是一台服务器或容器实例)都承担部分功能,如计算、存储或服务请求处理。这些节点之间通过网络通信、数据同步和任务协作,实现对外提供高可用(High Availability)高性能(High Performance)可扩展(Scalable)的整体能力。🧩 换句话说。
2025-10-14 11:28:23
325
原创 分布式架构 vs 微服务架构:从理念到落地的全面解析
在现代系统架构演进中,“分布式架构”和“微服务架构”是最容易被混淆的两个概念。很多团队在把项目拆成多个模块独立部署后,就认为自己已经“上了微服务”;也有开发者把微服务简单理解为“更细的分布式”。实际上,这两者既有继承关系,也有本质区别。本文将带你从概念、特征、目标、设计理念、部署方式、技术实践等多个维度,深入理解两者的联系与差异,并提供架构选型建议。对比维度分布式架构微服务架构定位架构形式架构理念与实现标准目标解决性能与可扩展问题实现服务自治与高可维护性通信远程调用(HTTP/RPC)
2025-10-11 18:36:15
813
原创 集中式架构、分布式架构与微服务架构全面解析
阶段主要目标典型特征解决的问题新增的挑战集中式架构快速构建、简化部署单体应用、共享数据库开发效率、简单部署扩展性与耦合度问题分布式架构模块解耦、水平扩展模块化服务、独立部署系统性能与可伸缩性数据一致性、通信复杂度微服务架构服务自治、敏捷迭代独立服务、自动化运维持续交付与高可用运维复杂度、分布式事务。
2025-10-11 16:12:28
1158
原创 线程们,请排队!Java 锁的那些事儿
偏向锁:单线程访问时零开销轻量级锁:短时间竞争自旋,减少挂起重量级锁:长时间竞争,保证安全自适应自旋:智能选择自旋或阻塞,平衡性能和安全偏向锁(Biased Locking)↓ 竞争出现轻量级锁(Lightweight Lock / 自旋)↓ 自旋失败重量级锁(Heavyweight Lock / 阻塞)JVM 的锁升级机制是一套“智慧守门员策略”,自动在低竞争、高性能 vs 高竞争、安全性之间切换,让我们用最少的成本保证线程安全。锁类型独占/共享可重入公平性可中断优点缺点典型场景。
2025-09-23 18:35:32
1104
原创 Graylog排查实录:一次由 Elasticsearch 分片数爆满引发的问题
通过删除和关闭部分旧索引,我先让分片数降到950 左右,Graylog 立即恢复了写入和查询。随后,我在 Graylog 的 Index Set 中把分片数改成了更合理的配置,并计划后续增加节点和接入 ILM 策略。表面错误可能有“迷惑性”看似是索引丢失,实际原因是索引根本没法创建。Elasticsearch 分片是稀缺资源分片数量一旦打满,集群会“静悄悄”拒绝新索引,必须随时关注分片数。治理要从源头做起Graylog 默认分片设置过大,需要结合实际日志量来调整;同时 ILM 和集群扩容是长久之策。
2025-09-18 10:44:41
1287
原创 一份“有态度”的 Java 生产环境启动脚本
启动脚本别偷懒,否则出了问题就是半夜运维叫你起床。通用场景:G1 GC + 上面那堆安全配置。低延迟场景容器环境:记得。日志是你最好的朋友,OOM 堆转储是遗书。
2025-09-09 17:02:45
1130
原创 MySQL 索引失效全解析与优化指南
索引失效是数据库性能优化中的高频问题,核心在于理解 B+ 树结构和优化器决策逻辑。通过:遵循5C 原则避免函数运算、隐式类型转换控制范围查询顺序分析优化器决策使用覆盖索引和分区索引可以显著提高查询效率,降低全表扫描风险。
2025-08-28 15:41:42
943
原创 Jenkins 执行器(Executor)并发数量修改
在 Jenkins 中,执行器(Executor)就是 Jenkins 在某个 Agent(节点)上执行任务的“工作线程”。一个执行器 = 一条可以运行 Job 的并发通道一个 Agent 可以拥有多个执行器如果某个 Agent 的执行器数量是1,那么它一次只能运行一个任务,多余的任务会进入排队状态如果你有一个 Agent,执行器数量设置为 1,那么同时触发 3 个构建任务,只有第 1 个能立刻执行,另外 2 个会排队。如果将执行器数量改成 3,那么这 3 个任务就可以同时执行。
2025-08-28 11:17:53
1244
原创 Kafka:为什么它这么快,又能干什么?
Kafka 的厉害之处在于,它既能保证消息系统的可靠性,又能提供极高的性能。它像一个企业数据的高速公路 + 黑匣子 + 广播站高速公路 → 支撑巨量数据的快速传输黑匣子 → 数据持久可靠广播站 → 一次消息,多个系统都能接收这也是为什么从互联网公司到金融机构,从实时推荐到日志收集,Kafka 都能大展身手的原因。
2025-08-27 11:44:32
1570
原创 生产环境的 MySQL 数据库能用 Docker 吗?
IO 性能损耗:文件系统抽象层导致导入、导出和复杂查询性能下降 20%-50%。资源隔离不足:CPU/内存限制无法保证独占,可能导致性能波动。
2025-08-21 17:50:58
890
原创 RabbitMQ 延时队列插件安装与使用详解(基于 Delayed Message Plugin)
让消息延迟一定时间后再投递到消费者。典型应用场景包括订单支付超时取消秒杀未支付自动释放库存用户注册后延时发送欢迎邮件自动关闭未操作的工单等通过安装插件,RabbitMQ 拥有了真正意义上的“消息级”延迟投递功能,无需依赖死信队列和 TTL,极大简化了延时场景的开发与维护工作。
2025-08-01 11:52:23
1936
原创 Docker 目录占用磁盘空间太大?教你安全迁移 Docker 根目录
通过合理迁移 Docker 根目录,可以有效释放根分区压力,将大量容器与镜像数据迁移到更大更合理的挂载路径上。迁移核心步骤:清理无用资源(推荐)停止 Docker 服务使用 rsync 拷贝数据修改配置文件指向新目录重启 Docker 并验证运行正常删除旧目录释放空间。
2025-07-30 17:03:52
1443
原创 Spring Boot 集成 RabbitMQ:普通队列、延迟队列与死信队列全解析
现代分布式系统中,异步消息队列作为解耦、削峰和异步处理的重要组件,被广泛采用。RabbitMQ 是一款基于 AMQP 协议的成熟消息队列中间件,功能丰富,性能稳定。普通队列:用于正常业务消息处理延迟队列:实现消息的延迟投递和重试机制死信队列:捕获处理失败的消息,方便后续监控、报警或补偿处理利用普通队列 + 延迟队列 + 死信队列,构建灵活的消息处理流程,提升系统可靠性和可维护性。结合手动消息确认和异常捕获,实现消息不丢失、失败消息自动重试。
2025-07-21 14:50:32
1295
原创 Jenkins Pipeline 中使用 JsonSlurper 报错:cannot find current thread
Jenkins Pipeline 中,Groovy 方法并非都能直接使用。受限于 Jenkins 的 CPS 系统,很多涉及 IO、线程、状态不可序列化的操作会报错。面对首选:使用 Jenkins DSL 提供的readJSONwriteFile通用:将 JSON 操作封装为@NonCPS方法调试:仅在script {}中临时使用。
2025-07-16 10:34:15
1216
原创 CentOS虚拟机忘记root密码?快速安全重置全流程详解
在本地使用虚拟机进行测试时,长时间不登录很容易忘记密码。本文将详细介绍如何通过GRUB引导参数修改,安全重置CentOS虚拟机的root密码。本方法适用于CentOS 7/8/9及兼容系统。生产环境请谨慎使用此方法,建议通过云平台控制台或KVM管理界面操作。重置密码后请立即更新SSH密钥和访问策略。将ro改为rw, 添加init=/sysroot/bin/sh。执行 touch /.autorelabel。执行 passwd root 重置密码。执行 chroot /sysroot。编辑GRUB启动参数。
2025-07-04 17:13:44
2615
原创 服务器异常宕机或重启导致 RabbitMQ 启动失败问题分析与解决方案
问题类型主机解决方案容器解决方案权限问题修改 rabbitmq 用户权限设置目录为 999:999端口冲突杀进程 + 调优内核参数清理容器 + 检查主机端口数据残留清理 /var/lib/rabbitmq清理挂载目录内容日志分析docker logs + 挂载日志目录灾难恢复备份 mnesia 目录备份挂载的 data 目录三维故障定位权限问题:检查权限端口冲突:排查 5672、15672、25672 端口状态和 TIME_WAIT数据残留:清理mnesia目录下的.pid。
2025-07-02 10:38:02
1946
原创 一文搞懂数据集成平台与数据湖:核心概念解析与协同架构
把企业数据体系比作「城市供水系统」数据源 = 河流、湖泊、雨水(分散的水源)数据集成平台 = 输水管网+净水厂(收集和净化)数据湖 = 大型水库(统一存储)数据分析 = 自来水厂(加工成可饮用的水)
2025-06-27 11:05:22
1020
原创 DevOps:打破“部门墙”,重塑高效交付的协作艺术
开发想快,运维求稳”—— 这道横亘在传统IT部门之间的“高墙”,曾让无数软件交付项目陷入泥潭。DevOps 应运而生,它不仅仅是一套工具链,更是一场旨在弥合裂痕、加速价值流动的文化与工程实践革命。DevOps不是一个具体的岗位、单一的工具或银弹框架。它是一个多维度的体系DevOps 是一种强调跨职能协作、自动化一切重复性工作、基于度量和反馈持续改进的文化、方法论与实践集合,旨在实现软件构建、测试与发布的高度可靠、快速且频繁。其核心是通过自动化打通交付流水线,通过协作文化打破部门壁垒,通过持续反馈。
2025-06-26 16:43:31
875
原创 JVM垃圾回收器全景解析:从Serial到ZGC的演进与对比
分代式ZGC(JDK21):年轻代独立回收,吞吐提升40%+NUMA优化:ZGC/Shenandoah适配非统一内存架构服务器GCaaS:云环境动态调整堆大小与回收策略Serial ─▶ Parallel ─▶ CMS ─▶ G1 ─▶ { ZGC ─▶ 分代模式,└─────────▶ Epsilon (测试旁路)每一代都是为了解决前者的瓶颈Serial → 利用多核 → ParallelParallel → 缩短停顿 → CMSCMS → 碎片 + 调优难 → G1。
2025-06-24 18:30:42
1052
原创 Kafka vs RabbitMQ vs Redis:消息中间件全面对比与选型指南
如果你要做的是大规模流式处理管道,选 Kafka;如果你在做的是企业业务系统间的可靠通信,选 RabbitMQ;如果你关注的是极速响应的轻量消息推送/排队,选 Redis。
2025-06-24 11:46:18
1505
原创 从 0 到 1 构建企业日志系统:Graylog + Java 日志采集全流程实践
在现代微服务架构中,日志是故障排查和系统监控的基础。Graylog 作为一款开源的日志管理平台,基于 Elasticsearch、MongoDB 和自身的 Graylog Server,为我们提供了强大的日志采集、查询、可视化能力。本文将从配置 Graylog 的 Index Set 和 Stream 开始,再介绍如何在 Java 应用中集成 Graylog 日志,实现日志的高效采集和管理。组件作用示例Input接收日志(UDP、TCP、Syslog、Beats 等)
2025-06-20 11:08:18
1224
原创 Aspose-words java 24.3 限制绕过方案:Java 字节码技术实战分享(仅供学习)
是一款专业的文档处理组件,支持 Word 文档的创建、编辑、转换、打印、邮件合并、数字签名、PDF 导出等高级功能,广泛应用于企业文档自动化场景。支持.doc.docx.rtf.odt等格式;支持 Word 转 PDF、图像、HTML 等;提供复杂的页面布局、页眉页脚、书签、目录等功能;支持数字签名、水印、加密等安全功能。⚠️未经授权版本会存在页数限制、强制水印或导出失败等功能受限问题。本文旨在展示字节码修改技术及工具链流程(Javassist、Jar 操作等);
2025-06-13 14:51:02
1245
原创 Aspose.PDF 限制绕过方案:Java 字节码技术实战分享(仅供学习)
Aspose.PDF for Java 是一个强大的 PDF 操作组件,可用于 Java 项目中自动生成、编辑、转换 PDF 文档。动态创建 PDF,支持图像、表格、图形、字体等;实现 PDF 压缩、优化、签名、加密等操作;提供完善的文档安全保护机制;支持使用 XML 或 API 接口生成 PDF。其强大程度足以替代 iText 等开源组件,但大部分高级功能属于商业授权部分。
2025-06-06 14:49:43
1404
aspose-words-19.5-cracked.jar 稳定无水印版
2025-11-06
aspose-slides-25.5-jdk16 无水印(包含license文件).zip
2025-10-22
ffmpeg-2025-10-09-git-469aad3897-full-build.7z
2025-10-11
aspose-pdf-22.7.1-unlocked.jar 无水印版
2025-06-16
aspose-slides-25.5-jdk16-cracked.jar 无水印版
2025-09-28
aspose-pdf-22.7.1.cracked.jar 无水印版
2025-06-13
aspose-slides-24.5-jdk16-cracked.jar 无水印版
2025-06-13
aspose-words-24.3-jdk17-cracked.jar 无水印版
2025-06-13
jdk-21-windows-x64-bin.zip
2025-06-16
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人
RSS订阅