dubbo源码之rpc协议介绍

2019-07-12 15:25:39 浏览数 (1)

1. protocol协议的加载入口

2. dubbo 中的protocol及SPI拓展点:

dubbo中已经实现的protocol主要如下图

接下来介绍主要的几个protocol。

2.1 com.alibaba.dubbo.registry.integration.RegistryProtocol

这个protocol主要是管理dubbo的服务注册,管理dubbo与注册中心之间的交互:

2.2 dubbo=com.alibaba.dubbo.rpc.protocol.dubbo.DubboProtocol

是dubbo默认的protocol,主要用于创建ExchangeServer和ExchangeClient 目前dubbo已经实现的server主要有:

长连接部分主要有netty和mina,具体使用的哪个是通过spi transporter拓展文件来指定,netty为默认的:

2.3 rmi=com.alibaba.dubbo.rpc.protocol.rmi.RmiProtocol

使用的是java的rmi机制进行直连通信。

2.4 hessian=com.alibaba.dubbo.rpc.protocol.hessian.HessianProtocol

使用的是HessianSkeleton进行通信,注意这里的hessian和hessian序列化不是一个意思

2.5 com.alibaba.dubbo.rpc.protocol.http.HttpProtocol

  • server端实现的是HttpServer,主要的实现有:
  • client端实现主要有httpUrlConnection和commons包中的CommonsHttpInvokerRequestExecutor

2.6 其他的protocol

  • com.alibaba.dubbo.rpc.protocol.webservice.WebServiceProtocol:webservice协议的实现
  • thrift=com.alibaba.dubbo.rpc.protocol.thrift.ThriftProtocol:thrift协议
  • memcached=com.alibaba.dubbo.rpc.protocol.memcached.MemcachedProtocol:memcached协议
  • redis=com.alibaba.dubbo.rpc.protocol.redis.RedisProtocol:redis协议
  • rest=com.alibaba.dubbo.rpc.protocol.rest.RestProtocol:rest协议

3. dubbo的序列化

这里顺便提一下dubbo的序列化:

com.alibaba.dubbo.common.Constants#DEFAULTREMOTINGSERIALIZATION中显示的默认的序列化方式是hessian2:

0 人点赞