- 博客(137)
- 收藏
- 关注
原创 OnlyOffice:前端编辑器与后端API实现高效办公
OnlyOffice是一套开源的办公软件套件,提供文档编辑、表格编辑、演示文稿制作等功能。它支持多种文件格式(如DOCX、XLSX、PPTX、PDF等),并且通过API接口提供高度可定制的服务。前端编辑器:用户在Web浏览器中直接使用编辑器进行文档创建、编辑和协作。后端API:开发者可以通过与后端进行交互,包括文档管理、用户权限控制、实时协作等功能。前端和后端通过网络协议和Socket连接进行数据交换,实现文档编辑、同步和实时协作。
2025-02-21 18:38:23
2107
原创 Camunda流程引擎
工作流(Workflow),是对工作流程及其各操作步骤之间业务规则的抽象、概括描述。指在组织中,多个任务、活动或过程之间的顺序和控制流。这些任务通常涉及多个参与者、系统或部门,工作流的目标是将复杂的业务逻辑分解为多个可管理的逻辑段,并统一控制这些逻辑段的执行条件、执行顺序以及相互通信,从而实现业务逻辑的解耦与优化。这种方式不仅提高了业务流程的灵活性和可维护性,还促进了各个环节之间的协同工作。
2024-09-18 15:38:59
5373
原创 ubuntu22.04下搭建iRedMail邮件服务器
例如:随着人工智能的不断发展,机器学习这门技术也越来越重要,很多人都开启了学习机器学习,本文就介绍了机器学习的基础内容。iRedMail是一个开源、免费的邮件服务器项目,基于GPL(v2)协议发布。官网 www.iredmail.org (国内不能访问),可以通过www.iredmail.com访问。iRedMail 是一个强大且开源的电子邮件服务器套件,它简化了在 Linux 和 BSD 系统上部署和管理电子邮件服务器的过程。Postfix功能:作为 SMTP 服务器,负责电子邮件的发送和接收。
2024-06-13 15:40:47
8930
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
4737
4
原创 Jenkins 中 Node 版本异常排查:Alpine + musl 导致的兼容问题(lts-alpine-jdk17)
Node 二进制与操作系统 libc 不兼容(musl 与 glibc)
2026-04-24 16:38:27
520
原创 微服务与 K8s 协作的完整运行全流程(从传统到云原生)
在纯微服务架构中:服务 = 业务逻辑 + 服务发现 + 负载均衡 + 容错 + 自我保护能跑能扛能扩展但代价是:👉应用承担了太多本该由平台解决的事情K8s 并不是替代微服务框架,而是把“应用不该操心的事”,统一收回到平台层。K8s 不是让微服务变复杂,而是把“不该由微服务操心的复杂性”,统一收回到平台层。Sentinel解决的是 K8s刻意不解决的问题接口是否慢下游是否抖动局部是否过载接口级限流熔断降级快速失败这是“业务调用层”的安全网。
2026-03-15 14:36:06
982
原创 微服务全面解析:架构、组件与底层原理
单一职责= “一人一菜”,职责清晰,减少耦合数据自治= “自带食材”,独立数据库,避免共享风险服务通信= “传球配合”,REST/gRPC/消息队列独立部署= “替换球员不影响全队”,灰度发布、容器化分布式特性= “复杂比赛环境”,需考虑可靠性、一致性、可观测性、治理通过上面的比喻和实例,可以把微服务的核心思想串联起来记忆每个服务像足球队的球员,每个球员负责单一技能,自带装备,通过传球协作,并且可以随时换人而不影响整体比赛,教练可以实时观测整个比赛过程。微服务架构本质是。
2026-03-13 19:03:40
808
原创 接口调用的演进史——从“发 HTTP 请求”到“可治理的系统能力
在现代系统中,接口调用早已不是一个“HTTP 技术问题”,服务发现线程模型失败隔离资源保护演进维护的系统级协作问题。也正因为如此,后续才会逐步演进出:FeignWebClient以及完整的调用治理体系理解底层模型→ 决定线程、并发、阻塞行为理解场景→ 决定选择哪种工具理解分工→ 不同调用方式职责不同记忆演进链→ 原始阻塞 → 语义化 → 响应式如果你能把三种方式的底层模型 + 场景 + 优缺点 + 记忆模型记住,就相当于掌握了整个 Java 微服务接口调用体系的全景图。
2026-03-13 10:52:33
480
原创 常用的 Linux & Docker & 系统运维命令总结
后台运行任务(常用于 python/脚本)查看 NAT 表(Docker 映射规则)并手动开启 ip_forward 等规则。临时 MinIO 容器(用于获取配置)挂载根文件系统为读写(救援模式使用)([CSDN博客][2])([CSDN博客][3])([CSDN博客][3])([CSDN博客][4])Jenkins 容器启动。启动/停止/重启容器。
2026-03-11 21:50:16
233
原创 生产环境 OOM 排查与解决实践
慢慢涨、重启无效,多半是泄漏突然炸、高峰触发,多半是溢出Heap Dump 生成不是自动持续生成的OOM 自动生成JVM 在抛出前,尝试写 dump 文件堆中存活对象及引用关系会被捕获手动生成可以在非 OOM 情况下生成 snapshotOOM 先留证类型先分清分析盯三点:谁最多、谁在引、谁在涨内存泄露的根因,不是 GC 能力不足, 而是对象“该结束却没结束”。四句话记忆:入口层控制并发(Semaphore / 权重)队列容量有界执行层线程池异步处理堆水位实时监控。
2026-03-10 13:50:07
471
原创 JVM 底层彻底理解
计数器保执行,切线程不乱栈管调用,堆管对象新生代快收,老年代慢清类信息不进堆,进元空间GC 设计并发模型JVM 性能优化因为对象创建发生在多线程并发环境下。方案一:CAS + 重试通过原子操作更新内存指针失败则重试优点:通用缺点:高并发下有性能损耗方案二:TLAB(重点)每个线程在堆中预分配一小块内存线程内对象分配无需加锁无锁分配速度快大多数对象直接在 TLAB 中完成分配高频点JVM 默认是否开启 TLAB?是的,默认开启,用于提升对象分配效率。
2026-03-09 22:59:53
512
原创 DevOps 知识体系
DevOps 是一种开发(Dev)和运维(Ops)协作的软件交付模式,通过自动化工具和流程持续集成(CI)持续交付/持续部署(CD)自动化运维和监控目标是让软件更快、更稳定地上线,减少人为错误,同时提高系统可靠性。一句话总结:DevOps = 自动化 + 协作 + 持续交付,让软件快速可靠上线。代码提交↓自动构建↓自动测试尽早发现代码问题类型含义持续交付持续部署持续交付:需要人工确认上线持续部署:自动上线用代码管理服务器资源自动化可重复版本控制。
2026-03-08 16:39:55
605
原创 Spring Security 核心原理深度解析
认证 = 用某种凭证,证明你是谁用户名 + 密码第三方登录信息📌登录只是认证的一种 UI 表现不要把权限直接赋给用户,而是赋给角色用户(User)↓角色(Role)↓权限(Permission)↓资源(URL / 方法)为什么企业系统几乎都用 RBAC?
2026-02-24 11:52:07
1017
原创 Spring + Spring Boot 核心知识点汇总
声明式事务为主,编程式事务为补充注意传播机制和异常回滚策略避免导致事务失效项目中通常在Service 层方法 + Repository 层数据操作使用事务对独立业务操作可使用,保证事务隔离AOP 是管理横切关注点的核心工具日志、性能监控、权限控制、事务管理是最常见场景注意代理类型与问题切点精确 + 通知简洁 → 性能和可维护性最佳缓存用于性能优化与减轻数据库压力@Cacheable@CachePut分布式缓存(Redis)保证集群环境一致性注意缓存过期策略、key 命名、更新/删除同步。
2026-02-11 19:17:26
913
原创 分布式锁的本质:从单机到 Redis 的完整认知
临界区(Critical Section)同一时间只能被一个线程执行的代码区域如果这段代码:同一时间只能有一个线程进入其他线程必须等待那么问题就解决了。
2026-02-11 13:19:58
694
原创 数据库存储引擎
存储引擎是数据库中,负责把“逻辑数据”真正落到磁盘上的底层系统,具体负责数据的物理存储方式、索引结构、事务实现、并发控制以及崩溃恢复。主要分为 5 层:数据在磁盘上怎么放索引用什么结构、怎么查得快事务怎么保证不乱、不丢多个线程同时操作怎么不打架宕机后数据怎么恢复👉这 5 点,就是存储引擎存在的全部意义存储引擎是数据库中最复杂、最工程化的模块,它通过页管理、索引结构、事务日志和并发控制,在性能、可靠性和一致性之间做平衡。在这一章后,InnoDB 为什么用 B+Tree?行锁是怎么实现的?
2026-02-10 13:22:45
1160
原创 后端开发者必懂的13种设计模式
设计模式的核心价值不在于“用了多少模式”,而在于在复杂业务下,让代码依然清晰、可扩展、可维护。✅ 好的设计模式 = 降低认知成本 + 降低修改成本❌ 为了用模式而用模式 = 技术负债下面从问题场景 → 模式选择 → 工程价值的角度,对常见设计模式进行总结。
2026-02-09 13:16:06
667
原创 Redis 脑裂(Split-Brain)
Redis 脑裂(Split-Brain)是指:在网络分区场景下,多个节点同时认为自己是合法主节点,并对外提供写服务,从而导致数据分叉的现象。⚠️ 必须满足的 4 个条件:网络分区(不是节点宕机)节点仍然存活(节点未下线)存在自动主从切换机制(Failover)写请求可能进入不同分区❌ 缺一条就不是脑裂,可能只是主从不可用或数据延迟。
2026-01-29 11:50:39
775
原创 JMeter 在 Linux 环境下进行生产级性能压测的完整实战指南
并发不是能力,吞吐才是能力Avg 看趋势,P95 看体验QPS 到顶 + 延迟暴涨 = 性能拐点错误率为 0,也可能是系统失败。
2026-01-28 16:26:35
750
原创 JMeter 压力测试完全指南(中文界面版,超详细小白版)
压力测试(Performance / Load Testing)是指通过模拟大量用户同时访问系统来测试系统性能,目的是找出系统的承载能力和性能瓶颈。指标含义小白解释响应时间请求从发送到接收完整响应所需时间用户体验时间,越短越好吞吐量系统单位时间内处理的请求数量(req/sec)系统处理能力,越大越好并发数同一时间访问系统的虚拟用户数量模拟真实使用压力错误率请求失败比例系统稳定性指标,越低越好CPU/内存占用系统资源消耗判断瓶颈是否在硬件或程序百分位响应时间P90、P95、P99 响应时间。
2026-01-28 12:29:01
1450
原创 分布式事务完全演进链:从单体事务到 TCC 、Saga 与最终一致性
要么全部成功,要么全部失败,不允许“做了一半”的中间状态被外界看到。这是一个非常“反直觉”的能力,因为在现实世界中:程序会崩溃机器会断电网络会中断即使发生上述任意情况,也不会留下“半成品”。2PC 适合论文、实验室和小范围强一致场景但不适合高并发、分布式、易失败的真实世界分布式事务的主战场,早已从 2PC 转向“最终一致性方案”到这里,你应该自然产生这些疑问:❓ 能不能不锁资源?❓ 能不能不用协调者阻塞等待?❓ 能不能通过业务补偿代替强回滚?方案核心思想3PC降低阻塞TCC。
2026-01-26 13:19:50
754
原创 Docker Nginx HTTPS 实战:Let’s Encrypt SSL 证书生成与自动续期
所有环境都需安装 Certbot,但 Docker 不在容器内安装Webroot 模式最适合 Docker Nginx泛域名证书适合多子域名或动态子域场景Docker Nginx 推荐避免 127.0.0.1 访问问题配置 HSTS、安全头、静态资源缓存提升安全和性能自动续期 + Nginx reload 保证证书长期有效单域名、多域名、泛域名证书可灵活组合。
2026-01-16 10:04:27
1061
原创 MySQL 逻辑删除 + 唯一索引踩坑实录:一次并发场景下的真实线上事故复盘
唯一索引不是补丁,而是数据库对你历史数据的一次终审。“你过去,其实早就出过问题。
2026-01-04 18:09:21
748
原创 从“线程不够用”到“线程不值钱”:Java 并发模型 20 年演进与虚拟线程(Loom)的必然性
线程和阻塞成本,是系统设计中最昂贵的隐性资源换句话说:传统关注算力和硬件扩展的思路,在 IO 密集型、高并发服务中往往无效对“等待本身成本”的低估,是过去二十年服务端架构设计中反复出现的问题这一认知,成为我们后续分析 Java 并发演进、线程池设计以及虚拟线程(Loom)出现的出发点和总结的核心洞察。从需求到解法,路径已经完整闭合:虚拟线程并不是推翻过去二十年的工程经验,而是用更合理的底层模型,把这二十年的“技术债”一次性还清。吞吐高、延迟低、资源占用少同步编程 + 异步执行模型,开发体验优异。
2025-12-30 17:53:36
1287
原创 MySQL:从 ACID 到 MVCC 与主从复制
Undo Log→ 回滚原子性 → “如果失败,原子操作可撤销”约束 + 业务逻辑→ 保持一致性 → “账本规则不被破坏”锁 + MVCC→ 保持隔离性 → “事务的墨镜”Redo Log→ 保持持久性 → “提交即永久记录”口诀回顾“Undo 保原子,约束保一致,墨镜看隔离,Redo 保持久。“读不阻塞写,写不阻塞读,Undo 保历史,Redο 保持久,事务墨镜看可见,多版本账本不干扰。行锁→ 保护单行,防写冲突 → “写页锁页”间隙锁→ 保护空档,防幻读 → “锁缝防插入”Next-Key 锁。
2025-12-25 17:20:12
1129
原创 Java JDK 版本:从 JDK 8 到 JDK 25,一条清晰的进化路线
虚拟线程革命性降低了高并发开发复杂度适合百万级 I/O 密集、短生命周期任务CPU 密集型任务仍需传统线程池调优设计原则“虚拟线程用来处理阻塞,而不是无限增加并行度”过去:线程贵 → 写并发必须用线程池 + 异步 + 回调 → 高复杂度现在:线程几乎免费 → 可以写同步逻辑 → 高并发系统更易维护一句话虚拟线程让百万级线程从理论变为实践,让 Java 并发编程从“技术高地”降到“人人可用”。JDK 25 是 Java 的一个整合型里程碑写得像脚本语言:语法极简、上手快跑得像系统语言。
2025-12-23 11:54:16
1352
原创 CPU、线程、IO 在系统中各自扮演什么角色?
控制线程数,使用线程池避免无限线程导致调度开销和内存消耗减少阻塞 IO异步 / 非阻塞 IO,提高吞吐系统解耦降低单点等待,避免线程雪崩形成性能直觉结合 CPU、Load、iowait、线程数形成判断模型看到监控图,脑子里能直接模拟“餐厅运作状态”CPU忙才是真忙,Load高CPU低找IO,线程无限雪崩伤系统CPU 只负责跑线程,不负责等待比喻:厨师只做手里的菜,没菜就闲着IO 会让线程停下来,CPU 自然就闲比喻:厨师等食材送到,站着也是空闲。
2025-12-22 19:06:42
688
1
原创 缓存三大问题:穿透、击穿、雪崩及解决方案
用户问:id=123 的用户信息→ 缓存说:没有→ 数据库说:也没有id = -1全部直接打到数据库 → 数据库瞬间可能崩掉。当某个热点 Key 过期明星直播间 100 万人同时进来→ Redis 热点 key 失效→ 全部打到数据库→ 数据库崩掉大量缓存 Key同时失效山上积雪同时掉下来 → 雪崩缓存同时过期 → 数据库崩触发场景:系统一次性加载大量缓存,统一过期Redis 宕机程序 Bug 删除大量 Key问题原因影响解决方案穿透请求不存在的数据所有请求绕过缓存打 DB。
2025-11-26 16:08:13
373
原创 Redis 高可用架构:主从复制、哨兵 与 集群 的工作机制详解
单机 = 一个人做所有事→ 简单,易理解,但单点故障主从 = 写主节点,读副本→ 减轻读压力,副本有延迟Sentinel = 老师监督 + 自动顶替→ 自动故障切换Cluster = 分组 + 每组有备份→ 高并发、高可用客户端分片 / Proxy = 家长分作业→ 灵活,但需保证管理层稳定多活 / 跨机房 = 分布式协调 + 最终一致性→ 复杂且高风险Redis 架构选择不是越复杂越好,关键是根据业务需求落地简单场景单机或主从 + Sentinel特点:部署简单、延迟低、容易理解。
2025-11-26 15:05:30
1400
原创 逻辑过期 + 异步刷新:高性能缓存策略与长耗时计算场景下的处理方案
有效期 5 分钟达到时间就让缓存消失,下个请求重新查数据库。问题来了:如果这个接口本来就慢(例如统计类接口),那在过期的瞬间可能有 500 个请求同时扑向数据库,直接把数据库压死。业务高峰期碰到缓存过期,接口延迟会突然飙升,非常危险。这里的 expireTime 只是“一个我们自己看的标记”。Redis 内部不设置真实 TTL,缓存永远存在。耗时计算 ≠ 用户必须等。缓存永不过期 + 后台异步刷新 = 用户体验稳定、系统压力更低。而逻辑过期正是这个模型里最核心、最稳妥的方案。
2025-11-26 10:30:14
1359
原创 Redis :一致性、缓存策略与高可用设计
模块原则工程建议Key 命名层级清晰,可读性高使用冒号分层,避免动态字段Big Key避免单对象过大Hash / List 拆分,防止阻塞TTL 策略避免缓存雪崩随机 TTL + 逻辑过期,热点异步刷新简单清晰、合理分层、控制规模,保障 Redis 性能与稳定性。
2025-11-25 18:14:22
884
原创 Redis 是怎么做到这么快的?一篇通俗讲懂“内存数据库”的秘密
(1)全部在内存中,速度是硬盘 100 万倍(2)单线程,无锁、无竞争、无上下文切换(3)为性能优化过的数据结构(跳表、ziplist、quicklist)(4)IO 多路复用,让单线程处理大量连接(5)协议简单(RESP),命令执行路径极短下面为你。
2025-11-25 12:50:39
916
原创 深入 Spring AI:架构与应用
Spring AI 是为 Java / Spring 团队量身打造的 AI 工程框架:核心价值在于统一抽象、模块化、结构化输出、生产级监控最适合企业级系统,尤其是需要 RAG、聊天机器人、工具调用、内容生成等场景与 Python 框架相比,优势在于 Spring 自然整合和类型安全;劣势在于 Agent 功能和生态成熟度对于希望在现有 Spring 系统中平滑加入 AI 能力的团队,Spring AI 是非常值得考虑的选择。
2025-11-24 18:21:00
958
原创 RAG 的诞生:为了让 AI 不再“乱编”
RAG全称,中文为“检索增强生成”。其核心思想是:在生成答案时,不仅依赖大模型内部的训练知识,还能够实时访问外部知识库或文档,从而生成更加准确和可靠的内容。就像一个学生回答问题,不仅依靠自己记忆,还会去图书馆查资料,然后结合记忆和查到的资料回答问题。你问模型:“请告诉我最新的新能源补贴政策。纯模型可能只靠训练记忆,回答的是过时或模糊的信息。RAG 模型会先去查最新政策文件,再结合训练知识生成答案,因此更准确。检索资料:先找到相关文档或信息。结合生成:把找到的资料和问题一起输入模型,让模型生成答案。
2025-11-24 15:59:13
1789
原创 Java Excel 导出:EasyExcel 使用详解
EasyExcel高性能基于SAX 流式解析和写入,内存占用低可以轻松处理百万行数据导出,不会 OOM易用注解式对象映射(只需定义对象类即可生成 Excel 表格样式灵活表头样式、内容样式、列宽、合并单元格等都可自定义Web 集成方便可以直接输出到浏览器下载,无需先生成文件适合企业后台系统、报表系统、统计平台等场景。
2025-11-11 17:22:08
1452
原创 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
1267
原创 一次由 PageHelper 分页污染引发的 Bug 排查实录
MyBatis-Plus 的分页拦截器使用Page对象,不依赖 ThreadLocal,因此天然不会污染其他查询。问题现象根因解决方案第1页正常,第2页开始查询不到用户PageHelper 分页污染了权限 SQL调整分页时机或使用MyBatis 日志中出现分页上下文仍在作用中清除或重启分页上下文多层调用混合分页与非分页查询ThreadLocal 未隔离使用新事务或 MyBatis-Plus 分页⚙️一句话总结PageHelper 的分页配置是「线程级全局状态」,一旦开启,
2025-11-07 17:56:06
1094
原创 MySQL 联合索引设计中字段顺序、区分度与优化器行为详解
在日常开发中,我们常常为查询加上联合索引,例如:但在很多项目里,还能看到这种写法: 表示是否删除,只有 和 两种取值。很多人认为“查询总有 条件,索引当然要从它开始”,但事实上,这样反而可能拖慢查询速度。本文将系统讲清楚三个关键问题:联合索引字段顺序的重要性区分度(Cardinality)对索引效率的影响MySQL 优化器是否会自动调整 WHERE 条件顺序联合索引 的底层是一个 B+Tree。MySQL 检索时会按照索引定义的列顺序有序排列:因此,它遵循 最左前缀原则(Leftmost Pr
2025-11-06 18:49:19
1196
原创 Docker 部署 Node.js + Playwright 项目,实现浏览器截图、打印和下载
在 Linux 使用 Docker 部署 Node.js + Playwright 项目的方案,涵盖:Dockerfile 构建 Playwright 所需环境docker-compose 服务配置自动化部署脚本浏览器截图与打印示例通过上述方法,可以快速在国内 Linux 环境部署 Playwright 项目,并支持截图、打印和下载等自动化操作。
2025-10-30 14:33:27
1416
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订阅