简介
在RPC技术栈中最主要包括:
- 网络传输(大部分RPC框架采用TCP作为底层网络传输协议)。
- 传输协议(
grpc
使用的是HTTP2
,dubbo
使用自定义的dubbo
协议,也可以是Restful
协议和HTTP协议,还可以是hessian
协议)。 - 数据编码(RPC中数据编解码也是重要一环,可以使用像,java自带序列化或者是第三方的,比如:
protobuf
、json
、hessian
等)。 - 动态代理(动态代理在RPC中的作用是在客户的生成服务接口的代理类,让客户的调用服务端接口像是在操作本地接口一样方便,隐藏底层的编解码和网络传输等)。
具备以上四点一个RPC底层就实现完了,为什么说是底层呢,因为一个完整的RPC还要包括服务注册与发现、服务治理、负载均衡、熔断和限流等高级功能。