40 lines
1.3 KiB
Markdown
40 lines
1.3 KiB
Markdown
---
|
|
tags: [microservice, data-consistency]
|
|
create time: 2026-04-29 12:03
|
|
---
|
|
|
|
# 数据一致性
|
|
|
|
## 概述
|
|
|
|
微服务的核心设计原则是 **"每个服务拥有独立数据库"**,这带来了分布式事务和数据一致性的经典难题。本文梳理主要解决方案及其取舍。
|
|
|
|
## 知识体系
|
|
|
|
```mermaid
|
|
graph LR
|
|
A["数据库拆分"] --> B["分布式事务"]
|
|
B --> C["ID 生成"]
|
|
|
|
style A fill:#e3f2fd
|
|
style B fill:#fff3e0
|
|
style C fill:#e8f5e9
|
|
```
|
|
|
|
| # | 主题 | 核心问题 |
|
|
|---|------|----------|
|
|
| 1 | [[03-数据一致性/数据库拆分/README]] | 每个服务独立 DB,表大了怎么拆分?跨库查询怎么做? |
|
|
| 2 | [[03-数据一致性/分布式事务/README]] | 本地事务 + MQ、Saga、TCC,哪个方案最合适? |
|
|
| 3 | [[03-数据一致性/ID生成/README]] | 没有自增主键了,全局唯一 ID 怎么生成? |
|
|
|
|
### 学习建议
|
|
|
|
> [!tip] 学习路径
|
|
> 先理解"为什么不能共享数据库",再学分库分表的策略,最后深入分布式事务方案选型。ID 生成是最轻量的话题,可以随时了解。
|
|
|
|
### 关联笔记
|
|
|
|
- [[01-基础概念]] — 微服务拆分与独立数据库原则
|
|
- [[02-服务治理]] — 服务调用链路上的超时、重试、熔断
|
|
- [[hzh/MS/README.md]] — 完整微服务知识索引
|