一个优秀的RPC框架需要考虑的问题

实现一个高性能高可靠的RPC框架需要解决哪些问题?

1.应用都基于微服务化,实现资源调用离不开远程调用

2.一个服务可能有多个实例,你在调用时,要如何获取这些实例的地址呢?--- 这时候就需要一个服务注册中心,从服务注册中心获取服务的实例列表,再从中选择一个进行调用。

3.选哪个调用好呢?这时候就需要负载均衡了,于是又得考虑如何实现复杂均衡

4.总不能每次调用时都去注册中心查询实例列表吧,这样效率多低呀,于是又有了缓存,有了缓存,就要考虑缓存的更新问题

5.客户端总不能每次调用完都干等着服务端返回数据吧,于是就要支持异步调用;

6.服务端的接口修改了,老的接口还有人在用,怎么办?总不能让他们都改了吧?这就需要版本控制了;

7.服务端总不能每次接到请求都马上启动一个线程去处理吧?于是就需要线程池;

8.服务端关闭时,还没处理完的请求怎么办?是直接结束呢,还是等全部请求处理完再关闭呢?

如此种种,都是一个优秀的RPC框架需要考虑的问题。

猜你喜欢

转载自blog.csdn.net/weixin_37704921/article/details/89212111