① Dubbo 源码浅析(一)—RPC 框架与 Dubbo | 京东云技术团队
RPC,远程过程调用,是一种在本地调用远程过程的技术,与之相对的是本地服务调用,即在程序内部进行的方法调用。RPC框架使得我们能像调用本地方法一样方便地调用远程服务,无需关心底层实现细节。它可以被认为是一种概念,实现方式可以是多种协议,如HTTP或自定义的TCP协议,例如Dubbo。
HTTP与RPC的关系并非直接包含,因为HTTP的调用方式并不直接调用远程方法,而是通过HTTP请求进行数据传输。而RPC框架如Dubbo,提供了一种本地调用远程方法的能力。因此,RPC并不局限于HTTP,还可以基于TCP协议实现。
思考RPC与HTTP的关系时,应当从定义出发,理解RPC实际上指的是远程过程调用,其中“Procere”更多指的是程序或过程,而非方法。在理解概念时,不应忽略这一基本定义。RPC框架,如Dubbo,是为了简化远程服务调用的过程,提供了一套调用接口,使得开发者无需关注底层通信细节。
总体而言,RPC框架是帮助开发者在本地调用远程服务时,如同调用本地服务一样便捷。Dubbo是阿里巴巴开源的RPC框架,通过配置和简单的调用,即可实现远程服务的调用。Dubbo架构主要包含服务提供者和消费者,两者通过注册中心进行服务的注册与订阅。服务提供者启动后向注册中心注册服务,消费者启动后从注册中心订阅所需服务。注册中心将服务信息推送给消费者,实现服务的调用。服务提供者与消费者会记录调用次数与时间,并定时发送统计数据至监控中心。
相比之下,Spring Cloud作为另一大微服务框架,与Dubbo在组件配置和功能上有所不同。Spring Cloud提供了更完善的配置功能和更强的特性,更像一台品牌机,易于上手和使用。而Dubbo则更像组装机,需要用户自行选择配置,提供核心计算能力,但需要用户自行完成其他组件的装配和调试。对于新手来说,Spring Cloud更友好,而对于熟悉架构的开发者,Dubbo的灵活性和自定义性更受欢迎。