分布式锁
分布式锁 Redis 分布式锁(Redisson)与 Zookeeper 分布式锁(Curator)的实现原理、对比分析及项目实战。 一、为什么需要分布式锁 1.1 从单机锁到分布式锁 单机环境下,Java 提供 synchronized、ReentrantLock 等机制保证多线程对共享资源的互斥访问。这些锁依赖 JVM 进程内存,仅在单个进程内有效。 分布式环境下,...
分布式锁 Redis 分布式锁(Redisson)与 Zookeeper 分布式锁(Curator)的实现原理、对比分析及项目实战。 一、为什么需要分布式锁 1.1 从单机锁到分布式锁 单机环境下,Java 提供 synchronized、ReentrantLock 等机制保证多线程对共享资源的互斥访问。这些锁依赖 JVM 进程内存,仅在单个进程内有效。 分布式环境下,...
分布式 ID 系统设计指南 一、为什么需要分布式 ID? 1.1 数据库自增 ID 的局限性 核心痛点: 单点故障风险:数据库宕机 → 整个系统瘫痪 性能瓶颈:所有请求打到单库,TPS/QPS 有物理上限 分库分表冲突:多库环境下自增 ID 会重复 安全隐患:连续数字暴露业务量(竞争对手可推算真实销售额) 常见错误理解: “每次生成 ID 都必须向数据库发起...
ZooKeeper 笔记 一句话理解 ZK 就是分布式系统的管家——集群里各节点需要配合、同步状态,ZK 负责维持秩序、记录状态、通知变化。 场景一:分布式锁(怕大家打架) 猫趣场景:用户给帖子点赞,同一毫秒点了 10 次,多台服务器同时判断”还没赞过”,结果点赞数 +10。 ZK 怎么解决: 请求到服务器 A → 去 ZK 创建 /lock/like_{userId}_{p...
Seata 分布式事务 基于 Seata 2.x,结合本项目(catfun:社区 / 地图 / 用户 / 积分)设计 一、Seata 是什么 / 解决什么问题 Seata(Simple Extensible Autonomous Transaction Architecture)是阿里开源的分布式事务框架,解决微服务调用链中的数据一致性问题。 微服务化后,一次业务横跨多个...
Redis 缓存:穿透 / 击穿 / 雪崩 结合 catfun 项目实际代码,每个主题挑一个最合适的落点:community 帖子缓存链路(PostAppService.getPost + PostCacheService)。 帖子是项目里 Redis 用量最大的业务,内容缓存(Caffeine + Redis)、统计数缓存(Hash + Lua)齐全,穿透、击穿、雪崩三个问题都在同...
Nacos 笔记 目录 配置动态更新原理 临时与永久、AP 与 CP 网关改 Nacos 配置后全部报 500「网关内部错误」 1. 配置动态更新原理 一句话概括 Nacos 用长轮询实现配置热更新:客户端问服务端”配置变了吗?”,服务端说”没变,我等 30 秒再告诉你”,这 30 秒内一旦有变更,服务端立刻通知客户端。 什么是长轮询? 普通轮询:客户端...
MySQL 笔记 一条数据在 MySQL 里要过三关:写进去要可靠(事务刷盘)→ 查出来要快(慢 SQL 排查)→ 装不下要拆分(分库分表)。 每个环节都是:什么问题 → 什么方案 → 方案有什么坑。 flowchart LR subgraph C1["第 1 章 · 写数据"] A["事务刷盘<br/>可靠?"] end su...
OpenFeign vs Dubbo 微服务间通信的两种主流方案对比。一句话总结:OpenFeign 走 HTTP+JSON,通用易用;Dubbo 走 TCP+二进制,性能更高。 一、核心差异速览 维度 OpenFeign Dubbo 通信协议 HTTP T...
DDD 微服务标准包结构 一、四层架构总览 catfun-xxx/ # 微服务根目录 ├── pom.xml # 聚合 POM ├── catfun-xxx-api/ # ① API 层(对外契约) ├── catfun-xxx-app/ ...
1 Linux 上安装 Redis 1.1 什么是 Redis Redis 是一个使用 ANSIC 编写的开源、支持网络、基于内存、可选持久性的键值对存储数据库。从2015年6月开始,Redis 的开发由 Redis Labs 赞助,而2013年5月至2015年6月期间,其开发由 Pivotal 赞助。在2013年5月之前,其开发由 VMware 赞助。根据月度排行网站 DB-Eng...