dubbo支持的协议以及底层实现机制

协议   底层实现 协议特点 序列化组件 性能
dubbo  dubbo(参照代码Codec2接口及相关实现,目前dubbo中只有dubbo协议是自主实现,其他都是依赖第三方框架)

1. 协议头里记录序列化组件ID来决定客户端和服务端按照什么方式来编解码,请求ID对于response的解码从本地取该response对应的invocation来做解码。对于request则会在请求头里记录参数类型来做解码。

2. 底层是直接使用netty做tcp通信。

3. 仅支持java语言

可选。

avro、fastjson、fst、gson、hessian2、jdk、kryo、msgpack、native-hession、protobuf、protostuff

根据选择的底层序列化组件有关 
grpc grpc-netty

 https://github.com/grpc/grpc/blob/fd3bd70939fb4239639fbd26143ec416366e4157/doc/PROTOCOL-HTTP2.md。

1. 在使用之前需要先生成代码。

2. 底层基于http2实现网络通信

3. 跨语言

 默认为 protobuf  根据选择的底层序列化组件有关 
hassian   hassian

底层基于http,利用hassian做序列反序列化

   

 

 rpc框架比较: https://blog.csdn.net/zl_StepByStep/article/details/89303881

dubbo: dubbo
grpc: grpc-netty
hessian:hassian(caucho) http
http: json-rpc(https://github.com/briandilley/jsonrpc4j) http
injvm: 直接调用对象
memcached: xmemcached 只支持memcached调用 tcp
native-thrift: libthrift
redis:jedis
rest: servlet/jetty/tomcat: resteasy; netty:resteasy-netty
rmi:spring
thrift:废弃
webservice: 服务基于http(内嵌tomcat/jetty..),协议基于cxf-rt-frontend-simple
xml: xmlrpc-server

posted @ 2021-07-05 20:39  Birding  阅读(409)  评论(0编辑  收藏  举报