带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(3)

简介: 带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(3)
+关注继续查看

《Apache Dubbo微服务开发从入门到精通》——通信协议——二、 HTTP/2(Triple)协议(2) https://developer.aliyun.com/article/1224947



a) Triple 协议内容介绍

基于 grpc 协议一步扩展


Service-Version "tri-service-version" {Dubbo service version}

Service-Group "tri-service-group" {Dubbo service group}

Tracing-ID "tri-trace-traceid" {tracing id}

Tracing-RPC-ID "tri-trace-rpcid" {_span id _}

Cluster-Info "tri-unit-info" {cluster infomation}


Service-VersionService-GroupDubbo服务的version跟groupgrpc path service name method name,相比于 Dubbo协议,version group Tracing-IDTracing-RPC-ID 于全链路追踪能力,分tracing id span id Cluster-Info 示集群信息,可以使用构建一如集群分等路由相关的的服务治理能力。


b) Triple Streaming

Triple 协议相传统的 unary 方式,多了目前提供的 Streaming RPC 的能力。


Streaming 场景


在一些大文件传等应用场景中,consumer provider 需要跟对行大量数据的传,由于这些情况下的数据量是非常大的,此是可以在一个RPC 的数据行传对于这些数据们需要对数据包进行分后,过多次 RPC 调用行传,如果我们对这些已经拆RPC 数据包进并行传那么相关的数据无序的,需要对接到的数据接,相关的会非常复杂果我们对拆RPC 数据包进行传那么对应的网RTT 与数据理的时延非常大的。


以上的问并且了大量数据的传以流水线方式在 consumer

provider 之间传Streaming RPC 模型应运生。


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


3) Triple 协议设计目标

Triple 设计的标,Triple 协议以下势:


具备语言互的能力,传统的多语言多 SDK 式和 Mesh 语言模式都需更通用易扩展的数据传协议。

提供更模型除了支持传统的 Request/Response 模型Unary 单向通信),还支持 Stream(流式通信)和 Bidirectional双向通信)。

易扩展、穿透性高,包括但不Tracing/Monitoring 支持能被各层设备识别,网关设等可以识别数据文,Service Mesh 部署,降低用户理解度。

grpc户端/服务端可以与原生 grpc 户端通。

可以用现grpc 生态下的组件, 满足云原生场景下的语言环境跨平台的互通需求。当前使用协议的 Dubbo 用户,框架提供有序列化方式的迁移能力,在影响线已有业务的提下,迁移协议的


a) 完全兼容 GRPC

需要对接 grpc 服务的 Dubbo 用户,可以直接使用 Triple 协议实现通,不需要grpc client 来完成不仅已有Dubbo 易用性,能降低程序复杂度和开发运维本,不需要外进配和开发入现生态。


b) 方便网关接入

对于需要网关入的 Dubbo 用户,Triple 协议提供原生的方式,让网关开发或者使用开源的 grpc 网关组件更简单。网关可以payload,在性能有很大提高。在使用 Dubbo 协议时,语言相关的序列化方式是网关的一个很大点,传统的 HTTP Dubbo 的方式对于语言序列无能为力的。同时,由Triple 的协议元数据存储中,网关可以轻松的实现需求,如路由和限流等能。


《Apache Dubbo微服务开发从入门到精通》——通信协议——二、 HTTP/2(Triple)协议(4) https://developer.aliyun.com/article/1224945

相关文章
|
5天前
|
网络协议 Linux 应用服务中间件
2022红帽企业版网络配置--centos7配置DHCP DNS绑定域名 FTP HTTP(apache) nginx samba
2022红帽企业版网络配置--centos7配置DHCP DNS绑定域名 FTP HTTP(apache) nginx samba
27 0
|
2月前
|
缓存 网络协议 PHP
http和Apache
http和Apache
30 1
|
2月前
|
缓存 网络协议 PHP
http和Apache
http和Apache
17 0
|
4月前
|
缓存 网络协议 关系型数据库
学习http+Apache
学习http+Apache
57 0
|
5月前
|
自然语言处理 Kubernetes Dubbo
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(1)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(1)
74 0
|
5月前
|
自然语言处理 Kubernetes Dubbo
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(2)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(2)
69 0
|
5月前
|
Dubbo Java 应用服务中间件
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(4)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(4)
62 0
|
5月前
|
Dubbo Java 应用服务中间件
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(5)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(5)
62 0
|
5月前
|
Dubbo Java 应用服务中间件
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(6)
带你读《Apache Dubbo微服务开发从入门到精通》——二、 HTTP/2(Triple)协议(6)
66 0
相关产品
云消息队列 MQ
微服务引擎
云消息队列 Kafka 版
推荐文章
更多
推荐镜像
更多