分布式系统Distributed System
你可能会说
订单、库存和支付分在不同服务里,某个服务或网络断了时,系统还要知道这次订单到底走到哪一步。
由多个计算节点组成,并通过网络协作完成共同任务的系统。例如下单时,订单服务、库存服务和支付服务分别运行,彼此通过网络传递请求和结果;库存服务超时不代表其他服务都停止,系统必须处理这次部分失败。一个进程里的多个线程共享同一进程资源,不因为并发执行就自动成为分布式系统;真正影响判断的是节点之间存在网络和独立失败。
也常被叫作分布式架构分布式集群分布式计算
一次下单怎样跨节点遇到部分失败
流量 / 网络
order-api写入 order_42
网络请求 inventory
inventory-api准备扣库存
可观察证据不同节点只能通过网络交换信息
一次用户操作跨越了两个独立运行节点。
分布式系统为什么更难判断
网络把一个动作分成多个独立结果:订单服务发出库存请求后,库存服务可能已经处理、尚未收到,或处理完但响应在网络中丢失。不能把“订单服务返回成功”直接当作整个下单流程成功,必须记录跨服务请求的身份和各自结果。
反馈要能回到同一笔业务:库存超时后,系统应根据请求标识查清订单和库存两边发生了什么,再决定等待、重试、补偿或提示用户。修正后用正常请求和一次不可达请求验证状态不会互相矛盾;这些机制能改善判断和恢复,不会消除网络故障本身。
在线会议转写同样是分布式协作:录音服务可能已经保存音频,而转写服务因网络超时没有返回结果。系统要按同一会议标识分别记录保存和转写状态,才能决定重试转写,而不是让用户重新录音。
你可以这样告诉 AI Agent
请检查下单流程里的订单服务和库存服务:为跨服务请求保留同一个请求标识,分别记录发送、收到、成功、失败和超时结果。模拟库存服务不可达时,明确订单状态、是否会重试以及怎样避免重复扣库存。改完后用一次正常下单和一次库存超时验证每个服务的可观察结果。
延伸阅读 · 权威出处
快速练习