5、分布式系统通信与部分故障处理

分布式系统通信与部分故障处理

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” 是银行账户号码。服务器需要根据消息中的操作标识符和参数执行相应的操作,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值