Dubbo Triple

简介

Dubbo支持协议汇总

协议说明
tri://Dubbo3 基于 HTTP/2 上构建的主力RPC 协议
dubbo://采用单一长连接和NIO异步通讯,适合于小数据量大并发的服务调用,以及服务消费者机器数远大于服务提供者机器数的情况
rmi://RMI 协议采用 JDK 标准的 java.rmi.* 实现,采用阻塞式短连接和 JDK 标准序列化方式
hessian://Hessian 协议用于集成 Hessian 的服务,Hessian 底层采用 Http 通讯,采用 Servlet 暴露服务,Dubbo 缺省内嵌 Jetty 作为服务器实现
grpc://Dubbo 自 2.7.5 版本开始支持 gRPC 协议,对于计划使用 HTTP/2 通信,或者想利用 gRPC 带来的 Stream、反压、Reactive 编程等能力的开发者来说, 都可以考虑启用 gRPC 协议
http://基于 HTTP 表单的远程调用协议,采用 Spring 的 HttpInvoker 实现
injvm://JVM 进程内调用
redis://基于 Redis 实现的 RPC 协议
thrift://当前 Dubbo 支持的 thrift 协议是对 thrift 原生协议的扩展,在原生协议的基础上添加了一些额外的头信息,比如 service name,magic number 等
webservice://基于 WebService 的远程调用协议
memcached://基于 memcached 实现的 RPC 协议
rest://基于标准的Java REST API—JAX-RS 2.0(Java API for RESTful Web Services的简写)实现的REST调用支持

Triple 协议是 Dubbo3 基于 HTTP/2 上构建的主力RPC 协议,完整兼容 gRPC over HTTP/2,并在协议层面扩展了负载均衡和流量控制相关机制。

dubbo vs triple

在这里插入图片描述

Triple优势

  • 性能: 采取了 metadata 和 payload 分离的策略,避免中间件对payload解析和反序列化等耗时操作。
  • 路由支持: metadata 支持用户添加自定义 header,用户可根据header进行集群路由,灰度或容灾具有更高灵活性。
  • 安全性: 支持双向TLS认证(mTLS)等加密传输能力。
  • 多语言友好、易用性: 支持原生 gRPC 所推荐的 Protobuf 序列化外,使用通用的方式支持了 Hessian / JSON 等其他序列化,能让用户更方便的升级到 Triple 协议。
  • 支持流式: 基于流式包装出多种会话模
    型,支持更多业务场景。
  • 反压支持: 协议头支持服务端负载反馈,
    是Rx 语义的基础。

流式场景

在一些大文件传输、直播等应用场景中, consumer或provider需要跟对端进行大量数据的传输,由于这些情况下的数据量是非常大的,因此是没有办法可以在一个RPC的数据包中进行传输,因此对于这些数据包我们需要对数据包进行分片之后,通过多次RPC调用进行传输,如果我们对这些已经拆分了的RPC数据包进行并行传输,那么到对端后相关的数据包是无序的,需要对接收到的数据进行排序拼接,相关的逻辑会非常复杂。但如果我们对拆分了的RPC数据包进行串行传输,那么对应的网络传输RTT与数据处理的时延会是非常大的。

为了解决以上的问题,并且为了大量数据的传输以流水线方式在consumer与provider之间传输,因此Streaming RPC的模型应运而生。

通过Triple协议的Streaming RPC方式,会在consumer跟provider之间建立多条用户态的长连接,Stream。同一个TCP连接之上能同时存在多个Stream,其中每条Stream都有StreamId进行标识,对于一条Stream上的数据包会以顺序方式读写。

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值