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

相关文章
|
人工智能 安全 Java
智慧工地源码,Java语言开发,微服务架构,支持分布式和集群部署,多端覆盖
智慧工地是“互联网+建筑工地”的创新模式,基于物联网、移动互联网、BIM、大数据、人工智能等技术,实现对施工现场人员、设备、材料、安全等环节的智能化管理。其解决方案涵盖数据大屏、移动APP和PC管理端,采用高性能Java微服务架构,支持分布式与集群部署,结合Redis、消息队列等技术确保系统稳定高效。通过大数据驱动决策、物联网实时监测预警及AI智能视频监控,消除数据孤岛,提升项目可控性与安全性。智慧工地提供专家级远程管理服务,助力施工质量和安全管理升级,同时依托可扩展平台、多端应用和丰富设备接口,满足多样化需求,推动建筑行业数字化转型。
420 5
|
人工智能 Java 数据库
飞算 JavaAI:革新电商订单系统 Spring Boot 微服务开发
在电商订单系统开发中,传统方式耗时约30天,需应对复杂代码、调试与测试。飞算JavaAI作为一款AI代码生成工具,专注于简化Spring Boot微服务开发。它能根据业务需求自动生成RESTful API、数据库交互及事务管理代码,将开发时间缩短至1小时,效率提升80%。通过减少样板代码编写,提供规范且准确的代码,飞算JavaAI显著降低了开发成本,为软件开发带来革新动力。
|
11月前
|
JSON 中间件 Go
Go 网络编程:HTTP服务与客户端开发
Go 语言的 `net/http` 包功能强大,可快速构建高并发 HTTP 服务。本文从创建简单 HTTP 服务入手,逐步讲解请求与响应对象、URL 参数处理、自定义路由、JSON 接口、静态文件服务、中间件编写及 HTTPS 配置等内容。通过示例代码展示如何使用 `http.HandleFunc`、`http.ServeMux`、`http.Client` 等工具实现常见功能,帮助开发者掌握构建高效 Web 应用的核心技能。
522 61
|
Linux C语言 iOS开发
C语言结合AWTK开发HTTP接口访问界面
这样,我们就实现了在C语言中使用libcurl和AWTK来访问HTTP接口并在界面上显示结果。这只是一个基础的示例,你可以根据需要添加更多的功能和优化。例如,你可以添加错误处理机制、支持更多HTTP方法(如POST、PUT等)、优化用户界面等。
678 82
|
11月前
|
C# 图形学 开发者
Unity开发中使用UnityWebRequest从HTTP服务器下载资源。
总之,UnityWebRequest就是游戏开发者手中的万能钓鱼竿,既可以获取文本数据,也能钓上图片资源,甚至是那声音的涟漪。使用UnityWebRequest的时候,你需要精心准备,比如确定URL、配置请求类型和头信息;发起请求;巧妙处理钓获的数据;还需要机智面对网络波澜,处理各种可能出现的错误。按照这样的过程,数据的钓取将会是一次既轻松愉快也效率高效的编程钓鱼之旅。
647 18
|
10月前
|
IDE Java API
Java 17 新特性与微服务开发的实操指南
本内容涵盖Java 11至Java 17最新特性实战,包括var关键字、字符串增强、模块化系统、Stream API、异步编程、密封类等,并提供图书管理系统实战项目,帮助开发者掌握现代Java开发技巧与工具。
607 1
|
12月前
|
人工智能 数据可视化 JavaScript
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
Juggle是国内首个开源的微服务编排框架,专注于解决企业微服务进程中接口重复开发、系统对接复杂等问题。它提供零代码、低代码和AI增强功能,通过可视化拖拽快速组装简单API为复杂接口,支持多协议、多语言脚本和流程多版本管理。相比国外框架如Conductor,Juggle更贴合国内需求,具备高效开发、企业级可靠性及信创适配等优势,助力企业实现敏捷创新与数字化转型。
1021 0
颠覆开发效率!国内首个微服务编排框架Juggle开源啦!
|
11月前
|
Java API 微服务
Java 21 与 Spring Boot 3.2 微服务开发从入门到精通实操指南
《Java 21与Spring Boot 3.2微服务开发实践》摘要: 本文基于Java 21和Spring Boot 3.2最新特性,通过完整代码示例展示了微服务开发全流程。主要内容包括:1) 使用Spring Initializr初始化项目,集成Web、JPA、H2等组件;2) 配置虚拟线程支持高并发;3) 采用记录类优化DTO设计;4) 实现JPA Repository与Stream API数据访问;5) 服务层整合虚拟线程异步处理和结构化并发;6) 构建RESTful API并使用Springdoc生成文档。文中特别演示了虚拟线程配置(@Async)和StructuredTaskSco
1164 0
|
XML JSON Linux
Reqable:跨平台HTTP开发与调试工具
Reqable是一款功能强大且易于使用的跨平台HTTP开发与调试工具,具有多平台支持、全面的HTTP请求构建与解析、请求历史记录和环境管理等功能。它简化了HTTP请求的构建、发送和响应分析过程,为开发者提供了极大的便利。通过Reqable,开发者可以更高效地进行HTTP开发和调试,提高工作效率和代码质量。
1090 26
|
人工智能 网络协议 API
开发效率翻倍!Apipost这些协议调试秘籍,从HTTP到金融报文全搞定
Apipost是一款强大的API研发管理工具,支持多种协议与数据格式,包括HTTP(s)、WebSocket、SSE、gRPC、TCP及金融协议(如ISO 8583、FIX)。它内置国密算法库,提供HTTP文件秒传、全局参数配置等实用功能。在SSE调试中,可轻松处理AI模型流式响应;WebSocket与Socket.IO实现高效实时通信;GraphQL支持可视化Query编写;TCP模块解决金融报文编码难题;gRPC则具备服务反射与流式调试能力。Apipost不仅简化了多协议切换的复杂性,还自动生成文档,显著提升开发效率,让开发者专注于核心业务逻辑。

推荐镜像

更多