返回 随笔记录
随笔记录

十、分布式与微服务

博主
大约 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 功能