带你读《Apache Dubbo微服务开发从入门到精通》——三、 迁移到 HTTP/2 协议(1)

简介: 带你读《Apache Dubbo微服务开发从入门到精通》——三、 迁移到 HTTP/2 协议(1)

三、 迁移到 HTTP/2 协议


1. 迁移方步骤


1) Triple 介绍


Triple 协议的格式和原理RPC 通信协议。


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


具备语言互的能力,传统的多语言多 SDK 式和 Mesh 语言模

需要更通用易扩展的数据传输协议。

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

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

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

可以用现grpc 生态下的组件, 满足云原生场景下的语言环境跨平台的互通求。


当前使用协议的 Dubbo 用户,框架提供有序列化方式的迁移能力,影响线已有业务的提下,迁移协议的


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


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


2) Dubbo2 协议迁移流程

Dubbo2 的用户使用 dubbo 协议+自定义序列化,如 hessian2 完成远程调用。


Grpc 仅支持 Protobuf 序列化,对于 Java 语言中的参数以重载也支持


Dubbo3 的之初就有一条标是Dubbo2以为Dubbo2 够平滑升级,Dubbo 框架了很多工作来保证升级的目前认的序列化和 Dubbo2保持hessian2


以,如决定要升级到 Dubbo3 Triple 协议,需要修改配置中的协议称为tri(注意:不triple可。


以一使用 Dubbo2 协议的工程例,如一步一步全的升级。

使用 dubbo 协议provider consumer并完成调用。

使用 dubbo tri 协议provider,以 dubbo 协议consumer,并完成调用。

使用 tri 协议provider consumer并完成调用。


a) 定义服务


定义接

image.png

实现如下

image.png

b) 仅使用 dubbo 协议

性,们先将部分 provider 升级到 dubbo3 版本使用 dubbo 协议。

使用 dubbo 协议动一Provider Consumer完成调用,输出如下

image.png

c) 同时使用 dubbo 和 triple 协议

对于线上服务的升级,可能一而就同时完成 provider consumer 升级,需要按作,证业务稳定


二步,provider 提供协议的方式同时支持 dubbo+tri 两种协议的户端。


构如图

image.png


注:

按照推升级步provider 已经支持了 tri 协议,dubbo3 consumer 可以直接使用 tri 协议。


使用 dubbo 协议和 triple 协议Provider Consumer完成调用,输出如下


image.png


d) 仅使用 triple 协议


consuemr 升级支持 Triple 协议的版本provider 换至仅使用Triple 协议动。


构如图示:

image.pngProvider Consumer 完成调用,输出如下

image.png

e) 实现原理

上面介的升级程,可以简单的通修改协议类型来完成升级。框架是做到这些


过对 Triple 协议的介们知Dubbo3 Triple 的数据类型protobuf 对象protobuf java 对象可以被正常


这里 Dubbo3 使用巧妙的设计,首先参数类型protobuf 对象,如是。用一protobuf 对象request response wrapper就屏蔽了其各种序列带来复杂度。在 wrapper 对象内序列类型,来支持序列化的扩展。


wrapper protobuf IDL 如下:

image.png

对 于 求,使用 TripleRequestWrapper 对 于 应使用

TripleResponseWrapper


注:

对于求参数,可以args repeated 需要支持 java 法的多个参数。序列能是一序列化的实现沿Dubbo2 实现的 spi



《Apache Dubbo微服务开发从入门到精通》——迁移到 Dubbo3——三、 迁移到 HTTP/2 协议(2) https://developer.aliyun.com/article/1223559





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

推荐镜像

更多