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

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



