在分布式系统的架构设计中,远程过程调用(RPC)构成了服务间通信的基石。然而,受限于网络环境的不确定性(如丢包、延迟、拥塞)以及节点运行状态的不可靠性(如宕机、重启),RPC 调用无法提供与本地函数调用等同的可靠性保证。
当一个 RPC 请求发出后,若调用方(Client)在预定时间内未收到响应,将面临信息缺失的困境:调用方无法判定请求是因网络故障未能送达,还是服务端(Server)已处理但响应在回传途中丢失。这种状态的不确定性引出了 RPC 的核心语义问题:在发生故障时,RPC 系统能够保证过程执行了多少次?
本文将引入分布式系统理论中的安全性与活性属性,深入探讨四种主要的 RPC 语义:可能交付、至多一次、至少一次 以及 精确一次,并进一步分析在复杂工程实践中常被提及的端到端语义与事务性语义。
2026/3/9大约 9 分钟