RPC(Remote Procedure Call):远程过程调用,就是像调用本地方法一样调用远程方法。它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的思想。
RPC 是一种技术思想而非一种规范或协议,常见 RPC 技术和框架有:
- 应用级的服务框架:阿里的 Dubbo/Dubbox、Google gRPC、Spring Boot/Spring Cloud。
- 远程通信协议:RMI、Socket、SOAP(HTTP XML)、REST(HTTP JSON)。
- 通信框架:MINA 和 Netty。
RPC框架应有功能:
服务提供者:远程服务的被调用方,提供服务实现。
服务消费者:远程服务的调用方。
注册中心:提供服务的注册和发现。
调用监控:监控远程服务调用情况。
序列化:将对象名称、方法名称、参数等对象信息进行网络传输需要转换成二进制传输
数据传输
关于Dubbo和Spring Cloud(转):使用 Dubbo 构建的微服务架构就像组装电脑,各环节我们的选择自由度很高,但是最终结果很有可能因为一条内存质量不行就点不亮了,总是让人不怎么放心,但是如果你是一名高手,那这些都不是问题;而 Spring Cloud 就像品牌机,在 Spring Source 的整合下,做了大量的兼容性测试,保证了机器拥有更高的稳定性,但是如果要在使用非原装组件外的东西,就需要对其基础有足够的了解。