这是我参与「第五届青训营 」伴学笔记创作活动的第 12 天
1.RPC概念
RPC 是 Remote Procedure Call 英文的缩写,即远程过程调用,也可以称之为远程程序调用。它是一个计算机通信协议,这个协议允许运行在一台计算机的程序调用另一台计算机的子程序。
广义的 RPC 概念:广义上我们可以将所有通过网络来进行通讯调用的实现统称为RPC。按照这样来理解的话,那我们发现HTTP其实也算是一种RPC实现。
狭义的 RPC 概念:狭义的 RPC 区别于 HTTP 的实现方式,在传输的数据格式上和传输的控制上独立实现。
2.RPC框架
一个典型RPC框架如下,包括几个组件:
服务提供者:远程服务的被调用方,提供服务实现。
服务消费者:远程服务的调用方。
注册中心:提供服务的注册和发现。
调用监控:监控远程服务调用情况。
3.RPC指标
①稳定性:
- 熔断: 一个服务A调用服务B时,服务B的业务逻辑又调用了服务C,而这时服务C响应超时了,由于服务B依赖服务C,C超时直接导致B的业务逻辑一直等待,而这个时候服务A继续频繁地调用服务B,服务B就可能会因为堆积大量的请求而导致服务宕机,由此就导致了服务雪崩的问题
- 限流: 当调用端发送请求过来时,服务端在执行业务逻辑之前先执行检查限流逻辑,如果发现访问量过大并且超出了限流条件,就让服务端直接降级处理或者返回给调用方一个限流异常
- 超时: 当下游的服务因为某种原因响应过慢,下游服务主动停掉一 些不太重 要的业务,释放出服务器资源,避免浪费资源
- 负载均衡
②易用性:
- 开箱即用:合理的默认参数选项、丰富的文档
- 周边工具:生成代码工具、脚手架工具
③扩展性
④观测性