分布式之RPC的协议以及错误处理

本文深入探讨了分布式系统中的RPC(远程过程调用)和RMI(远程方法调用),并详细解释了它们的区别。在交互协议部分,重点介绍了请求-应答协议的同步和异步模式,以及如何处理故障,如超时和重复请求。此外,还讨论了在服务器端识别和处理重复请求的策略,以确保服务的稳定性和效率。
摘要由CSDN通过智能技术生成

本文主要内容来自于分布式系统:概念与设计
用惯了Web Services,但是很少知道RPC和RMI,更不用说它们之间的区别了,所以先总结一下RPC以及RMI到底是什么东西!!

在分布式系统通信中有两个最基本的远程调用技术,分别是:

  • RPC:一个对远程节点上的过程的调用就像调用本地节点那样完成;
  • RMI:与特定的Java RMI要进行区分,与RPC最大区别在于使用了面向对象的概念,那么在远程调用时可以把对象应用作为参数传递,它的实现最典型的就是Java RMI,但不限于Java RMI;

1、交互协议

远程调用允许客户端透明地调用在服务器程序中的过程,而这些服务器程序在不同的进程中,并且通常在不同于客户端的计算机中。如果要完成远程调用,必然要设计出一种协议让客户端和服务端来遵守,这样才能让调用者和提供调用过程者协同完成工作。其实我们对这种“协议”也不陌生,比如熟知的TCP/IP协议和Http协议等等。在远程调用过程中有多种交互协议,如下:

  • 请求协议:可以用在不需要从远程操作中返回值或者客户端不需要得到远程操作执行确认的场景中,请求发送后客户端不需要等待应答消息而可以继续执行;
  • 请求-应答协议:这种方式使我们最常见的,服务器的应答消息可以看做是客户端请求消息的一个确认;
  • 请求-应答-确认应答协议

这三种协议传递消息的方式如下:

<
协议 客户端 服务端 客户端
请求协议 请求 XX XX
请求-应答协议 请求 应答 XX
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值