RPC
RPC是什么
提到DUBBO,不得不先说下RPC,RPC又是什么?RPC全称Remote Procedure Call,是一种远程过程调用协议。
RPC的作用
RPC是为了跨JVM调用Java方法
概念澄清
RPC只是一种协议或者说是一种理念,只要符合这种理念的实现都符合RPC,可以使用基于传输层的各种协议,也可以使用基于应用层的的Http协议,也可以使用文件共享,甚至是进程间的通信
DUBBO
DUBBO是什么
DUBBO是一种分布式、高性能、透明化的RPC服务框架
DUBBO的作用
服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等
DUBBO的基本逻辑
DUBBO的基本逻辑或者说是RPC框架的基本逻辑:
服务端定义接口和服务实现类并注册服务
客户端使用代理调用服务
客户端代理把调用对象、方法、参数序列化成数据
客户端代理与服务端通过Socket通讯传输数据
服务端反序列化数据成为调用对象、方法、参数
服务端代理使用这些信息通过反射调用服务具体实例的具体方法
DUBBO的5种主要组件
DUBBO中不只这5种组件,还有不常用的ProviderConfig、ConsumerConfig、MethodConfig、ArgumentConfig。
ApplicationConfig
应用的配置,主要配置应用名、版本、所有者等等
RegistryConfig
注册中心配置,主要配置链接注册中心所需要的信息,address、port、protocol等
ProtocolConfig
协议配置,配置协议名和协议的端口,由服务提供方指定,消费方被动接受
ServiceConfig
以接口为单位,手动指定需要的应用配置、注册中心配置、接口、实现类。export暴露服务
ReferenceConfig
已接口为单位,手动指定需要的应用配置 、注册中心配置、接口。get获取接口代理对象
DUBBO与Spring Cloud的区别
DUBBO主要关注的是RPC整个调用过程中的服务治理,Spring Cloud关注的是整个微服务层面,具有网关、服务降级、熔断等功能
Spring Cloud与Spring Cloud Alibaba的区别
DUBBO常用的配置策略
dubbo的配置策略除了以下常用以外,还有很多,详情参考官方文档