输入标题、正文或标签,查找知识。

最近文档

软件工程 / 构建发布与运行构建环境与持续集成:为什么你电脑上能跑还不够你把收藏功能交给同事,他安装以后却打不开。原来你电脑用的是一个 Node 版本,他用另一个;你本地还有没提交的文件。要交付软件,不只需要源代码,还要让别人按照明确步骤得到能运行的结果。软件工程 / 构建发布与运行部署、发布、回滚与观察:把功能交到用户手里代码已经合并,收藏按钮却没出现在网站上。或者网站更新了,点击时提示找不到数据表。交付涉及代码、配置、数据和流量,不能只用“构建成功”判断完成。本章按一次小发布看这些环节怎样配合。语言基础 / TypeScript跨语言对照TypeScript 独有能力与缺失能力清单这一章适合在学完基础后回查:某个能力是 TypeScript 自己提供的,还是来自 JavaScript、浏览器、Node 或第三方库?先把来源认清,再讨论它擅长什么、缺少什么,就不会把“语言没有内置”误解成“整个生态都做不到”。语言基础语言基础学习路线:以 TypeScript 建立可迁移的编程模型学 TypeScript 时,你会同时遇到 JavaScript 的运行规则和 TypeScript 的类型规则。先把这两件事分清,很多报错就好理解了。按顺序做完前面的练习,再读跨语言对照;对照章节用于解释差异,不要求你同时学会五门语言。后端知识 / 身份权限与安全认证、授权与多租户:登录成功只是第一步用户把地址里的订单号从 42 改成 43,居然看到了别人订单。这不是登录失效,而是资源授权缺失。后端要分别确认调用者是谁,以及这个调用者是否能对这份数据执行当前操作。
1 / 5 · 构建环境与持续集成:为什么你电脑上能跑还不够
↑↓ 浏览 Enter 打开Esc 关闭
Damnatiox
知识文件夹

分布式与微服务

现代 Java Backend Engineering 学习路线:分布式与微服务

0 子目录10 文档
分布式与微服务:故障与一致性、服务通信、发现与配置、网关与保护、事务与事件、版本与兼容

CHAPTER OVERVIEW · 章节概览

先理解部分失败和一致性取舍,再处理通信、发现、保护与跨服务流程;组件组合须核对兼容关系。

本章学习路线

箭头表示建议的学习顺序;先理解问题,再逐步进入实现与实践。

flowchart LR N0["01 故障与一致性"] N1["02 服务通信"] N2["03 发现与配置"] N3["04 网关与保护"] N4["05 事务与事件"] N5["06 版本与兼容"] N0 --> N1 --> N2 --> N3 --> N4 --> N5

按顺序学习

10
分布式系统与微服务:从零开始的阶段导学调用本地方法失败,通常能直接得到异常;调用远程服务超时,却未必知道对方有没有执行成功。分布式系统的很多设计都从这种不确定性展开。先理解失败,再学注册、网关和事务组件。分布式基础:故障模型、CAP、BASE、复制与共识两台机器之间的网络断开时,系统仍要决定是否接受新的读写请求。CAP 讨论的就是带有明确前提的取舍,不是随意选两个字母。下面会把术语放回具体故障场景,再介绍复制与共识。服务通信:HTTP、OpenFeign、Dubbo、gRPC 与 Netty远程调用写起来像普通方法,并不表示它具有相同的失败行为。下面从请求编码、连接、超时和返回结果看 RPC,再比较 HTTP、gRPC、Dubbo 等工具各适合什么需求。Nacos:服务注册、发现、健康检查与配置治理服务实例不断增加或重启,调用方怎样知道该连哪个地址?配置改变后,又怎样让正确的实例收到更新?注册发现与配置管理分别回答这些问题,下面再看 Nacos 如何参与其中。API 网关、负载均衡、限流、熔断、降级与重试下游已经很慢时,继续重试可能把它压得更严重。限流、熔断和重试的目的不同,组合方式也很重要。先看一次请求经过哪些地方,再给每个机制设定范围、等待上限和恢复条件。分布式 ID、分布式事务、Outbox、Saga 与可靠事件订单、库存、支付分别由不同服务管理后,原来一个数据库事务能完成的工作被拆开了。下面从“哪些结果绝对不能出现”开始,选择幂等、事件或补偿机制,而不是先寻找万能的分布式事务注解。Spring Cloud 与 Spring Cloud Alibaba 组件图Spring Cloud 的组件图可以当索引,但不必把图上的组件全部装进项目。先确认你缺的是寻址、配置还是流量控制,再选择对应组件。最后再核对 Spring Boot 和发行版本是否配套。Seata、Sentinel 与 SkyWalking 实战边界事务没完成、请求量过大、故障原因不明,是三类不同的问题。Seata、Sentinel 和 SkyWalking 分别提供相关能力,彼此不能替代。下面把它们放进实际调用过程,看接入之后还需要自己处理哪些事。Spring Cloud Compatibility Matrix 与升级检查升级 Cloud 项目时,单独改一个 Boot 版本可能带来组合问题。把 JDK、Boot、Cloud 发行列车和第三方组件一起核对,再执行回归测试。本页记录的是指定日期的兼容关系,后续升级仍要重新检查。分布式系统与微服务推荐阅读微服务资料里组件很多,建议先读网络故障和一致性,再挑一个小的跨服务调用练习。只有看见超时、重复和部分成功的问题,才知道注册中心、重试与补偿分别在解决什么。