分布式系统中的远程方法调用与部分故障处理
1. 远程方法调用基础
在构建分布式应用时,直接使用与传输层协议 TCP 和 UDP 交互的低级 API 是可行的,其中最常见的是标准化的套接字库。不过,套接字复杂且容易出错,虽然它能在两个节点间创建双向管道用于发送数据流,但有更好的构建分布式通信的方法。
1.1 套接字概述
套接字是客户端和服务器之间双向网络连接的一个端点,由节点的 IP 地址和端口的组合来标识。每个 IP 地址可支持 65,535 个 TCP 端口和 65,535 个 UDP 端口。服务器上,每个 { , <端口>} 组合可与一个应用关联,形成唯一的端点供传输层将数据传递到目标服务器。
套接字连接由客户端和服务器的 IP 地址及端口的唯一组合标识,即 <客户端 IP 地址, 客户端端口, 服务器 IP 地址, 服务器端口>,连接创建后,客户端以流的形式向服务器发送数据,服务器返回结果。套接字库支持 TCP(SOCK_STREAM 选项)和 UDP(SOCK_DGRAM 选项)协议。
虽然可以直接使用套接字 API 编写分布式应用,但它是低级且难用的 API,除非有编写系统级代码的实际需求,否则应避免使用。
以移动银行应用为例,客户端使用套接字请求用户支票账户余额时,可发送如下消息负载:
{"balance", "000169990"}
其中,“balance” 表示要服务器执行的操作,“000169990” 是银行账户号码。服务器需解析消息,根据 “balance”
超级会员免费看
订阅专栏 解锁全文
2117

被折叠的 条评论
为什么被折叠?



