远程过程调用RPC之Dubbo
什么是RPC?
RPC,Remote Procedure Call,即远程过程调用。大规模分布式应用中普遍使用RPC来做内部服务、模块之间的数据通信,有助于解耦服务、系统的垂直拆分,使系统的扩展性更强,并能够让Java程序员用与开发本地程序一样的语法与方式去开发分布式应用程序。
RPC分为客户端(服务调用方)和服务器端(服务提供方),都运行在自己的JVM中。客户端只要引入要使用的接口,接口的实现和运行都在服务器端。RPC主要依赖的技术包括序列化、反序列化和数据传输协议,这是一种定义与实现相分离的设计。
什么是Dubbo?
Dubbo是阿里开源的服务治理框架,其不仅仅是一个RPC框架,还包含了服务治理的很多功能。
- 服务注册
- 服务自动发现
- 负载均衡
- 集群容错
Dubbo的传输是基于TCP协议的,使用了高性能的NIO框架Netty,序列化可以有很多种选择,但是其默认是使用Hessian的序列化方式实现。Dubbo默认使用ZooKeeper作为服务注册、管理中心。
Dubbo在Spring中的集成
-
pom.xml中需要加的依赖
-
服务提供者XML配置
-
服务消费者XML配置