分布式系统通信与部分故障处理
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” 表示我们希望服务器执行的操作,“000169990” 是银行账户号码。服务器需要根据消息中的操作标识符和参数执行相应的操作,
超级会员免费看
订阅专栏 解锁全文

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



