带你读《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

相关文章
|
2月前
|
缓存 负载均衡 网络协议
HTTP 与 SOCKS5 代理协议:企业级选型指南与工程化实践
面向企业网络与数据团队的代理协议选型与治理指南,基于流量特征选择HTTP或SOCKS5协议,通过多协议网关统一出站,结合托管网络降低复杂度,实现稳定吞吐、可预测时延与合规落地。
|
7月前
|
数据采集 数据可视化 API
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
本文介绍了一种基于QUIC和HTTP/3的异步爬虫方案,用于抓取知乎热榜数据并生成趋势图。通过HTTPX与aioquic结合实现高性能连接复用,配合代理IP绕过反爬限制,提取标题、热度等信息。利用Python代码示例展示了异步抓取流程,并借助Matplotlib绘制话题热度变化图表。分析显示突发热点生命周期短,而深度话题热度更稳定。此方案可优化内容运营策略,快速捕捉潜在爆款话题。
332 4
QUIC协议优化:HTTP/3环境下的超高速异步抓取方案
|
5月前
|
缓存 监控 搜索推荐
301重定向实现原理全面解析:从HTTP协议到SEO最佳实践
301重定向是HTTP协议中的永久重定向状态码,用于告知客户端请求的资源已永久移至新URL。它在SEO中具有重要作用,能传递页面权重、更新索引并提升用户体验。本文详解其工作原理、服务器配置方法(如Apache、Nginx)、对搜索引擎的影响及最佳实践,帮助实现网站平稳迁移与优化。
663 68
|
6月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
380 61
|
4月前
HTTP协议中请求方式GET 与 POST 什么区别 ?
GET和POST的主要区别在于参数传递方式、安全性和应用场景。GET通过URL传递参数,长度受限且安全性较低,适合获取数据;而POST通过请求体传递参数,安全性更高,适合提交数据。
564 2
|
4月前
|
应用服务中间件
HTTP协议中常见的状态码
HTTP协议状态码分为1xx、2xx、3xx、4xx、5xx五类,常见状态码包括:101(请求已接受)、200(请求成功)、302(重定向)、400(请求错误)、401(未认证)、403(无权限)、404(资源不存在),以及500(服务器错误)、502(网关错误)、503(服务不可用)、504(网关超时)等。
176 0
|
4月前
|
网络协议 安全 网络安全
什么是HTTP协议
HTTP协议是超文本传输协议,基于TCP,规定了客户端与服务器端通信规则,但数据以明文传输,安全性低。HTTPS则通过SSL加密保障数据安全。两者默认端口不同,HTTP为80,HTTPS为443。HTTPS安全性更高,但消耗更多服务器资源。
204 0
|
4月前
|
数据采集 Web App开发 JSON
Python爬虫基本原理与HTTP协议详解:从入门到实践
本文介绍了Python爬虫的核心知识,涵盖HTTP协议基础、请求与响应流程、常用库(如requests、BeautifulSoup)、反爬应对策略及实战案例(如爬取豆瓣电影Top250),帮助读者系统掌握数据采集技能。
386 0
|
5月前
|
存储 网络协议 安全
HTTP 协议及会话跟踪机制详解
本文详解了 HTTP 协议的核心知识,包括其定义(超文本传输协议,基于 TCP,规定客户端与服务器通信规则)及与 HTTPS 的区别(安全性、端口、资源消耗)。 介绍了 GET 与 POST 请求的差异(参数限制、安全性、应用场景),以及 Restful 风格(通过 URL 定位资源,请求方式决定操作)。列举了常见 HTTP 状态码(如 200 成功、404 资源未找到),对比了转发与重定向的区别(服务器端一次请求 vs 客户端两次请求)。 还阐述了会话跟踪机制:Cookie 基于客户端存储,通过Set-Cookie和Cookie头实现,安全性较低;Session 基于服务端存储,依赖 C
587 1

推荐镜像

更多