返回 随笔记录
十、分布式与微服务
博主
大约 9 分钟
十、分布式与微服务
范围:分布式理论、注册中心、消息队列、分布式事务、服务治理、微服务架构 知识点数量:268项 返回总目录
10.1 分布式基础
10.1.1 理论
- 962. CAP定理 - 掌握一致性、可用性、分区容错,理解只能满足两项
- 963. BASE理论 - 掌握基本可用、软状态、最终一致性
- 964. 一致性哈希 - 掌握虚拟节点,理解负载均衡
- 965. Gossip协议 - 掌握节点通信,理解反熵传播
- 966. 拜占庭将军 - 掌握容错算法,理解PBFT
- 967. Raft算法 - 掌握Leader选举和日志复制,理解Term机制
- 968. Paxos算法 - 掌握分布式共识,理解Basic Paxos和Multi Paxos
- 969. 两将军问题 - 理解不可靠通信的困境
- 970. FLP不可能性 - 理解异步系统共识的局限性
- 971. 时钟同步 - 掌握NTP/PTP,理解Logical Clock(Lamport/Vector)
10.1.2 分布式ID
- 972. Snowflake - 掌握雪花算法,理解时间戳+机器ID+序列号
- 973. 号段模式 - 掌握数据库号段,理解批量获取
- 974. Redis自增 - 掌握INCR,理解高性能生成
- 975. Leaf - 掌握美团方案,理解号段+雪花双模式
- 976. TinyID - 掌握滴滴方案
- 977. 时钟回拨 - 掌握回拨处理,理解等待/抛异常/扩展位
- 978. UUID - 掌握全局唯一,理解无序性问题
- 979. 数据库自增 - 掌握多库不同步长
10.2 注册中心
10.2.1 Nacos
- 980. 服务注册 - 掌握实例注册,理解临时/持久实例
- 981. 健康检查 - 掌握主动心跳和被动检查
- 982. 命名空间 - 掌握环境隔离,理解Namespace/Group/Service
- 983. 集群模式 - 掌握Raft(CP)和Distro(AP)协议
- 984. 配置管理 - 掌握动态配置,理解DataID/Group
- 985. 配置监听 - 掌握长轮询机制
- 986. 服务发现 - 掌握拉取服务列表
- 987. 权重路由 - 掌握实例权重配置
10.2.2 Zookeeper
- 988. Znode类型 - 掌握持久/临时/顺序/持久顺序节点
- 989. Watcher机制 - 掌握事件通知,理解一次性触发
- 990. ACL权限 - 掌握访问控制,理解digest/ip/world
- 991. 集群选举 - 掌握Leader选举,理解ZAB协议
- 992. Curator - 掌握客户端封装,理解Fluent API
- 993. 分布式锁 - 掌握InterProcessMutex,理解临时顺序节点
- 994. 服务注册 - 掌握临时节点实现
- 995. 配置中心 - 掌握节点数据监听
10.3 配置中心
10.3.1 配置管理
- 996. 配置热更新 - 掌握动态刷新,理解@RefreshScope
- 997. 灰度配置 - 掌握按标签推送,理解灰度规则
- 998. 配置版本 - 掌握历史回滚,理解版本管理
- 999. 权限控制 - 掌握读写权限,理解RBAC
- 1000. 配置加密 - 掌握敏感信息保护
- 1001. 多环境管理 - 掌握Dev/Test/Prod隔离
- 1002. 配置分组 - 掌握应用维度分组
10.3.2 Apollo
- 1003. Apollo架构 - 掌握Portal/Config/Admin服务
- 1004. 命名空间 - 掌握Public/Private/关联Namespace
- 1005. 灰度发布 - 掌握灰度规则,理解按IP/应用版本
- 1006. 发布审核 - 掌握权限审批流程
- 1007. 客户端集成 - 掌握Apollo Spring Boot Starter
- 1008. 配置推送 - 掌握长轮询+HTTP
- 1009. 回滚机制 - 掌握一键回滚
10.4 消息队列
10.4.1 Kafka
- 1010. Topic和Partition - 掌握分区机制,理解并行消费
- 1011. Producer - 掌握acks(0/1/-1)和幂等性
- 1012. Consumer - 掌握Offset管理,理解手动/自动提交
- 1013. Consumer Group - 掌握Rebalance,理解Coordinator
- 1014. ISR - 掌握同步副本集,理解hw和leo
- 1015. 日志段 - 掌握Log Segment,理解SegmentFile
- 1016. 事务 - 掌握Exactly Once,理解Transactional ID
- 1017. 延迟队列 - 掌握时间轮算法
- 1018. 压缩 - 掌握gzip/snappy/lz4/zstd
- 1019. 零拷贝 - 掌握sendFile,理解PageCache
- 1020. 副本复制 - 掌握Leader/Follower复制
- 1021. 顺序保证 - 掌握分区有序,理解Key Hash
10.4.2 RocketMQ
- 1022. NameServer - 掌握路由发现,理解轻量注册中心
- 1023. Broker - 掌握消息存储,理解CommitLog/ConsumeQueue
- 1024. 顺序消息 - 掌握分区顺序,理解MessageQueueSelector
- 1025. 事务消息 - 掌握半消息,理解本地事务回查
- 1026. 延迟消息 - 掌握延迟级别(18个级别)
- 1027. 重试机制 - 掌握死信队列,理解最大重试次数
- 1028. 消息过滤 - 掌握Tag和SQL92过滤
- 1029. 广播消息 - 掌握BROADCASTING模式
- 1030. DLedger - 掌握Raft模式主从切换
10.4.3 RabbitMQ
- 1031. Exchange - 掌握Direct/Topic/Fanout/Headers
- 1032. Queue - 掌握队列绑定,理解durable/exclusive/autoDelete
- 1033. 路由键 - 掌握消息路由,理解Binding Key
- 1034. 死信队列 - 掌握DLX/DLK,理解消息过期/拒绝/队列满
- 1035. 消息确认 - 掌握Ack机制,理解手动确认
- 1036. 优先级队列 - 掌握消息优先级
- 1037. 延迟插件 - 掌握Delayed Message Exchange
- 1038. 集群镜像 - 掌握Quorum Queue(Raft)
- 1039. 流控 - 掌握Publisher Confirms和Return
10.4.4 消息可靠性
- 1040. 消息丢失 - 掌握生产/存储/消费三阶段防护
- 1041. 重复消费 - 掌握幂等性,理解唯一键+去重表
- 1042. 消息顺序 - 掌握顺序保证,理解单分区消费
- 1043. 消息堆积 - 掌握堆积处理,理解临时扩容
- 1044. 消息回溯 - 掌握Offset重置,理解按时间查询
- 1045. 消息轨迹 - 掌握全链路追踪
- 1046. 消息补偿 - 掌握对账+补偿机制
10.5 分布式事务
10.5.1 理论基础
- 1047. 本地事务 - 掌握单库事务,理解ACID
- 1048. 2PC - 掌握两阶段提交,理解协调者/参与者
- 1049. 3PC - 掌握三阶段提交,理解CanCommit预检查
- 1050. TCC - 掌握Try/Confirm/Cancel,理解业务侵入性
- 1051. Saga - 掌握长事务补偿,理解编排/协同模式
- 1052. 本地消息表 - 掌握最终一致性
- 1053. Outbox - 掌握可靠消息,理解Canal监听binlog
- 1054. 最大努力通知 - 掌握定期重试
10.5.2 Seata
- 1055. AT模式 - 掌握自动补偿,理解Undo Log
- 1056. TCC模式 - 掌握手动补偿,理解业务接口定义
- 1057. Saga模式 - 掌握状态机,理解补偿服务定义
- 1058. XA模式 - 掌握标准XA,理解JTA规范
- 1059. TC/TM/RM - 掌握组件角色,理解交互流程
- 1060. 全局锁 - 掌握防并发,理解全局事务ID(XID)
- 1061. 隔离级别 - 掌握AT模式读未提交
- 1062. Seata Server - 掌握部署模式(DB/Redis)
10.6 服务治理
10.6.1 限流
- 1063. 计数器 - 掌握固定窗口,理解窗口边界问题
- 1064. 滑动窗口 - 掌握平滑限流,理解滑动粒度
- 1065. 令牌桶 - 掌握Guava RateLimiter,理解平滑突发
- 1066. 漏桶 - 掌握匀速流出,理解固定速率
- 1067. 热点限流 - 掌握参数限流,理解热点统计
- 1068. 集群限流 - 掌握分布式限流,理解Token Server
- 1069. 网关限流 - 掌握入口限流
10.6.2 熔断降级
- 1070. 熔断状态 - 掌握Closed/Open/HalfOpen转换
- 1071. 异常比例 - 掌握熔断策略,理解阈值配置
- 1072. 慢调用 - 掌握RT熔断,理解超时阈值
- 1073. 降级策略 - 掌握Fallback,理解默认值返回
- 1074. 半开探测 - 掌握恢复机制,理解试探请求
- 1075. 资源隔离 - 掌握线程池隔离,理解舱壁模式
- 1076. 超时控制 - 掌握超时熔断
10.6.3 负载均衡
- 1077. 轮询 - 掌握简单轮询,理解平滑加权轮询
- 1078. 随机 - 掌握加权随机
- 1079. 一致性Hash - 掌握虚拟节点,理解缓存友好
- 1080. 最少连接 - 掌握动态负载
- 1081. 响应时间 - 掌握加权RT
- 1082. 地域亲和 - 掌握就近访问
- 1083. 健康检查 - 掌握实例筛选
10.7 微服务架构
10.7.1 服务拆分
- 1084. DDD拆分 - 掌握限界上下文,理解领域边界
- 1085. 单一职责 - 掌握服务职责,理解高内聚
- 1086. 服务通信 - 掌握同步(HTTP/RPC)和异步(MQ)
- 1087. 服务版本 - 掌握版本兼容,理解向前/向后兼容
- 1088. 服务编排 - 掌握业务流程,理解Saga编排
- 1089. 服务聚合 - 掌握BFF模式(Backend For Frontend)
- 1090. 服务粒度 - 掌握适中拆分,理解避免过细/过粗
- 1091. 数据归属 - 掌握数据库私有化
10.7.2 可观测性
- 1092. 日志收集 - 掌握ELK/EFK,理解Filebeat
- 1093. 链路追踪 - 掌握SkyWalking/Jaeger,理解Trace/Span
- 1094. 指标监控 - 掌握Prometheus,理解Metrics类型
- 1095. 告警 - 掌握Alertmanager,理解告警路由
- 1096. 分布式追踪 - 掌握TraceId透传,理解MDC
- 1097. 业务监控 - 掌握自定义指标,理解QPS/成功率
- 1098. 服务拓扑 - 掌握依赖关系可视化
- 1099. 日志级别 - 掌握动态调整
10.7.3 API网关
- 1100. 路由转发 - 掌握动态路由,理解路径匹配
- 1101. 限流 - 掌握网关限流,理解全局/路由级
- 1102. 鉴权 - 掌握统一认证,理解JWT校验
- 1103. 协议转换 - 掌握HTTP转RPC
- 1104. 灰度发布 - 掌握流量染色,理解Header路由
- 1105. 负载均衡 - 掌握网关负载
- 1106. Spring Cloud Gateway - 掌握Predicate/Filter
- 1107. 网关高可用 - 掌握网关集群
- 1108. API文档聚合 - 掌握Swagger聚合
- 1109. 防重放攻击 - 掌握Nonce+Timestamp+Signature
10.7.4 微服务测试
- 1110. 契约测试 - 掌握Pact/Spring Cloud Contract
- 1111. 集成测试 - 掌握Testcontainers
- 1112. 混沌工程 - 掌握ChaosBlade,理解故障注入
- 1113. 性能测试 - 掌握JMeter/Gatling
- 1114. 端到端测试 - 掌握全链路测试
- 1115. 服务Mock - 掌握WireMock
进度统计
- 领域:分布式与微服务
- 知识点总数:268项
- 已完成:0项
- 待完成:268项
实战项目建议
- 项目1:秒杀系统 - 实现高并发秒杀,包含限流、熔断、分布式锁、消息队列削峰
- 项目2:分布式事务实战 - 使用Seata实现订单+库存+支付的分布式事务
- 项目3:微服务网关 - 基于Spring Cloud Gateway实现动态路由、限流、鉴权
常见面试问题
- 分布式事务有哪些解决方案?Seata AT模式的原理?
- Kafka如何保证消息不丢失不重复?
- 服务雪崩是什么?如何通过熔断降级防止?
- 什么是服务治理?限流算法有哪些?
- 微服务拆分的原则是什么?如何避免服务间循环依赖?
推荐学习资源
- 书籍:《分布式系统原理与范型》《凤凰架构》《重新定义Spring Cloud实战》
- 视频:极客时间《分布式系统实战课》《消息队列高手课》
- 官方:Seata官方文档、Apache Kafka官方文档、Spring Cloud官方文档
知识点测试
读完文章了?来测试一下你对知识点的掌握程度吧!
评论区
使用 GitHub 账号登录后即可发表评论,支持 Markdown 格式。
如果评论系统无法加载,请确保:
- 您的网络可以访问 GitHub
- giscus GitHub App 已安装到仓库
- 仓库已启用 Discussions 功能