07 | 如何实现RPC远程服务调用?

本文探讨了RPC(远程过程调用)的工作原理,从客户端和服务端建立网络连接、服务端如何处理请求、数据传输协议及序列化反序列化等方面展开。介绍了HTTP通信、Socket通信、同步阻塞(BIO)、同步非阻塞(NIO)和异步非阻塞(AIO)等多种方式,并强调了选择合适的通信协议和序列化方法的重要性。
摘要由CSDN通过智能技术生成

专栏上一期我讲过,要完成一次服务调用,首先要解决的问题是服务消费者如何得到服务提供者的地址,其中注册中心扮演了关键角色,服务提供者把自己的地址登记到注册中心,服务消费者就可以查询注册中心得到服务提供者的地址,可以说注册中心犹如海上的一座灯塔,为服务消费者指引了前行的方向。

有了服务提供者的地址后,服务消费者就可以向这个地址发起请求了,但这时候也产生了一个新的问题。你知道,在单体应用时,一次服务调用发生在同一台机器上的同一个进程内部,也就是说调用发生在本机内部,因此也被叫作本地方法调用。在进行服务化拆分之后,服务提供者和服务消费者运行在两台不同物理机上的不同进程内,它们之间的调用相比于本地方法调用,可称之为远程方法调用,简称 RPC(Remote Procedure Call),那么RPC 调用是如何实现的呢?

在介绍 RPC 调用的原理之前,先来想象一下一次电话通话的过程。首先,呼叫者 A 通过查询号码簿找到被呼叫者 B 的电话号码,然后拨打 B 的电话。B 接到来电提示时,如果方便接听的话就会接听;如果不方便接听的话,A 就得一直等待。当等待超过一段时间后,电话会因超时被挂断,这个时候 A 需要再次拨打电话,一直等到 B 空闲的时候,才能接听。

RPC 调用的原理与此类似,我习惯

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值