带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(下)

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
云原生网关 MSE Higress,422元/月
简介: 带你读《Apache Dubbo微服务开发从入门到精通》—— 一、 Dubbo通信协议设计概述(下)

《Apache Dubbo微服务开发从入门到精通》——通信协议—— 一、 Dubbo通信协议设计概述(上) https://developer.aliyun.com/article/1224959



2. Dubbo2

 

Dubbo2协议是基于TCP传输层协议之上构建的一套RPC通信协议,由于其紧凑、灵活、高性能的特点,在Dubbo2时代取得了非常广泛的应用,是企业构建高性能、大规模微服务集群的关键通信方案。在云原生时代,我们更推荐使用通用性、穿透性更好的Triple协议。

 

Dubbo2协议规范请参考Dubbo官网文档技术方案博客

 

3. gRPC

 

你可以用Dubbo开发和治理微服务,然后设置使用gRPC协议进行底层通信。但为什么要这么做那,与直接使用gRPC框架对比有什么优势?简单的答案是,这是使用gRPC进行微服务开发的常用模式,具体请往下看。

 

gRPC是谷歌开源的基于HTTP/2的通信协议,如同我们在产品对比文档中提到的,gRPC的定位是通信协议与实现,是一款纯粹的RPC框架,而Dubbo定位是一款微服务框架,为微服务实践提供解决方案。因此,相比于Dubbo,gRPC相对欠缺了微服务编程模型、服务治理等能力的抽象。

 

在Dubbo体系下使用gRPC协议gRPC over Dubbo Framework是一个非常高效和轻量的选择,它让你既能使用原生的gRPC协议通信,又避免了基于gRPC进行二次定制与开发的复杂度二次开发与定制gRPC,是很多企业规模化实践后证实不可避免的环节,Dubbo框架替开发者完成了这一步,让开发者可以直接以最简单的方式使用gRPC

 

gRPC over Dubbo示例请参考官网文档中的任务模块

 

4. REST

 

微服务领域常用的一种通信模式是HTTP+JSON,包括Spring Cloud、Microprofile等一些主流的微服务框架都默认使用的这种通信模式,Dubbo同样提供了对基于HTTP的编程、通信模式的支持。

 

HTTP over Dubbo示例请参考官网文档中的任务模块

Dubbo与Spring Cloud体系互通示例请参考官网文档中的任务模块

 

5. 其他通信协议

 

除了以上介绍的几种协议之外,你还可以将以下协议运行在Dubbo之上。对Dubbo而言,只需要修改一行简单的配置,就可以切换底层服务的通信协议,其他外围API和治理能力不受影响。

 

Hessian2

Thrift

JsonRPC

 

6. 异构微服务体系互通

 

关于协议迁移、多协议技术栈共存的实践方案,请参考本篇官网博客文章《使用Dubbo实现异构体系互通》

 

7. 配置方式

 

以上协议的配置和使用方式,包括如何配置单端口多协议支持等,请参照官网sdk示例文档。 

 

8. 自定义扩展

 

除了以上官方版本支持的通信协议,Dubbo支持扩展新协议支持,具体请参见Dubbo官网可扩展性说明

相关文章
|
6天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
19天前
|
Java 持续交付 微服务
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过具体案例分析,揭示了其如何助力企业应对业务复杂性、提升系统可维护性和可扩展性。文章首先概述了微服务的核心概念及其优势,随后详细阐述了实施微服务过程中的关键技术选型、服务拆分策略、容错机制以及持续集成/持续部署(CI/CD)的最佳实践。最后,通过一个真实世界的应用实例,展示了微服务架构在实际项目中的成功应用及其带来的显著成效。 ####
|
26天前
|
XML JSON API
ServiceStack:不仅仅是一个高性能Web API和微服务框架,更是一站式解决方案——深入解析其多协议支持及简便开发流程,带您体验前所未有的.NET开发效率革命
【10月更文挑战第9天】ServiceStack 是一个高性能的 Web API 和微服务框架,支持 JSON、XML、CSV 等多种数据格式。它简化了 .NET 应用的开发流程,提供了直观的 RESTful 服务构建方式。ServiceStack 支持高并发请求和复杂业务逻辑,安装简单,通过 NuGet 包管理器即可快速集成。示例代码展示了如何创建一个返回当前日期的简单服务,包括定义请求和响应 DTO、实现服务逻辑、配置路由和宿主。ServiceStack 还支持 WebSocket、SignalR 等实时通信协议,具备自动验证、自动过滤器等丰富功能,适合快速搭建高性能、可扩展的服务端应用。
86 3
|
28天前
|
设计模式 API 开发者
探索现代后端开发:微服务架构与API设计
【10月更文挑战第6天】探索现代后端开发:微服务架构与API设计
|
3天前
|
存储 Java 关系型数据库
微服务概述
微服务概述
12 1
微服务概述
|
2天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
2天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
21 2
|
12天前
|
缓存 运维 监控
后端开发中的微服务架构实践与挑战#### 一、
【10月更文挑战第22天】 本文探讨了微服务架构在后端开发中的应用实践,深入剖析了其核心优势、常见挑战及应对策略。传统后端架构难以满足快速迭代与高可用性需求,而微服务通过服务拆分与独立部署,显著提升了系统的灵活性和可维护性。文章指出,实施微服务需关注服务划分的合理性、通信机制的选择及数据一致性等问题。以电商系统为例,详细阐述了微服务改造过程,包括用户、订单、商品等服务的拆分与交互。最终强调,微服务虽优势明显,但落地需谨慎规划,持续优化。 #### 二、
|
18天前
|
监控 API 开发者
后端开发中的微服务架构实践与优化
【10月更文挑战第17天】 本文深入探讨了微服务架构在后端开发中的应用及其优化策略。通过分析微服务的核心理念、设计原则及实际案例,揭示了如何构建高效、可扩展的微服务系统。文章强调了微服务架构对于提升系统灵活性、降低耦合度的重要性,并提供了实用的优化建议,帮助开发者更好地应对复杂业务场景下的挑战。
17 7
|
15天前
|
运维 监控 API
后端开发中的微服务架构实践与挑战####
【10月更文挑战第19天】 本文将深入浅出地探讨微服务架构在后端开发中的应用,通过实例解析其核心理念、优势所在,以及实施过程中可能遭遇的挑战与应对策略。不同于传统单体应用,微服务以其轻量级、灵活性和可扩展性受到青睐,但同时也带来了服务间的通信复杂性、数据一致性等问题。通过本篇文章,读者将对微服务架构有一个全面而深入的理解,为实际项目中的选型与实施提供参考。 ####

推荐镜像

更多