带你读《Apache Dubbo微服务开发从入门到精通》——二、 核心架构(2)

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

《Apache Dubbo微服务开发从入门到精通》——Apache Dubbo 微服务框架简介——二、 核心架构(1) https://developer.aliyun.com/article/1225339



2. 服务开发框架

 

微服务的目标是构建足够小的、自包含的、独立演进的、可以随时部署运行的分布式应用程序,几乎每个语言都有类似的应用开发框架来帮助开发者快速构建此类微服务应用,比如Java微服务体系的Spring Boot,它帮Java微服务开发者以最少的配置、最轻量的方式快速开发、打包、部署与运行应用。

 

微服务的分布式特性,使得应用间的依赖、网络交互、数据传输变得更频繁,因此不同的应用需要定义、暴露或调用RPC服务,那么这些RPC服务如何定义、如何与应用开发框架结合、服务调用行为如何控制?

 

这就是Dubbo服务开发框架的含义,Dubbo在微服务应用开发框架之上抽象了一套RPC服务定义、暴露、调用与治理的编程范式,比如Dubbo Java作为服务开发框架,当运行在Spring体系时就是构建在Spring Boot应用开发框架之上的微服务开发框架,并在此之上抽象了一套RPC服务定义、暴露、调用与治理的编程范式。

 

image.png

 

Dubbo作为服务开发框架包含的具体内容如下:

 

RPC服务定义、开发范式

 

比如Dubbo支持通过IDL定义服务,也支持编程语言特有的服务开发定义方式,如通过Java Interface定义服务。

 

RPC服务发布与调用API

 

Dubbo支持同步、异步、Reactive Streaming等服务调用编程模式,还支持请求上下文API、设置超时时间等。

 

服务治理策略、流程与适配方式等

 

作为服务框架数据面,Dubbo定义了服务地址发现、负载均衡策略、基于规则的流量路由、Metrics指标采集等服务治理抽象,并适配到特定的产品实现。

 

想了解如何使用Dubbo微服务框架进行业务编码?可以参考Dubbo官网关于多语言SDK的详细介绍。

 

3. 通信协议

 

Dubbo从设计上不绑定任何一款特定通信协议,HTTP/2、REST、gRPC、JsonRPC、Thrift、Hessian2等几乎所有主流的通信协议,Dubbo框架都可以提供支持。这样的Protocol设计模式给构建微服务带来了最大的灵活性,开发者可以根据需要如性能、通用型等选择不同的通信协议,不再需要任何的代理来实现协议转换,甚至你还可以通过Dubbo实现不同协议间的迁移。

 

image.png

 

Dubbo Protocol被设计支持扩展,您可以将内部私有协议适配到Dubbo框架上,进而将私有协议接入Dubbo体系,以享用Dubbo的开发体验与服务治理能力。比如Dubbo3的典型用户阿里巴巴,就是通过扩展支持HSF协议实现了内部HSF框架到Dubbo3框架的整体迁移。

 

Dubbo还支持多协议暴露,您可以在单个端口上暴露多个协议,Dubbo Server能够自动识别并确保请求被正确处理,也可以将同一个RPC服务发布在不同的端口(协议),为不同技术栈的调用方服务。

 

Dubbo提供了两款内置高性能Dubbo2、Triple兼容gRPC协议实现,以满足部分微服务用户对高性能通信的诉求,两者最开始都设计和诞生于阿里巴巴内部的高性能通信业务场景。

 

Dubbo2协议是在TCP传输层协议之上设计的二进制通信协议

Triple则是基于HTTP/2之上构建的支持流式模式的通信协议,并且Triple完全兼容gRPC但实现上做了更多的符合Dubbo框架特点的优化。

 

总的来说,Dubbo对通信协议的支持具有以下特点:

 

不绑定通信协议

提供高性能通信协议实现

支持流式通信模型

不绑定序列化协议

支持单个服务的多协议暴露

支持单端口多协议发布

支持一个应用内多个服务使用不同通信协议




 《Apache Dubbo微服务开发从入门到精通》——Apache Dubbo 微服务框架简介——二、 核心架构(3) https://developer.aliyun.com/article/1225303

相关文章
|
15天前
|
API 持续交付 开发者
后端开发中的微服务架构实践与挑战
在数字化时代,后端服务的构建和管理变得日益复杂。本文将深入探讨微服务架构在后端开发中的应用,分析其在提高系统可扩展性、灵活性和可维护性方面的优势,同时讨论实施微服务时面临的挑战,如服务拆分、数据一致性和部署复杂性等。通过实际案例分析,本文旨在为开发者提供微服务架构的实用见解和解决策略。
|
28天前
|
Java 持续交付 微服务
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过具体案例分析,揭示了其如何助力企业应对业务复杂性、提升系统可维护性和可扩展性。文章首先概述了微服务的核心概念及其优势,随后详细阐述了实施微服务过程中的关键技术选型、服务拆分策略、容错机制以及持续集成/持续部署(CI/CD)的最佳实践。最后,通过一个真实世界的应用实例,展示了微服务架构在实际项目中的成功应用及其带来的显著成效。 ####
|
29天前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
53 2
|
1月前
|
缓存 Java 数据库
后端技术探索:从基础架构到高效开发的实践之路
【10月更文挑战第7天】 在现代软件开发中,后端技术是支撑应用运行的核心。本文将探讨如何从后端的基础架构出发,通过一系列高效的开发实践,提升系统的性能与可靠性。我们将深入分析后端框架的选择、数据库设计、接口开发等关键领域,并提供实用的代码示例和优化策略,帮助开发者构建更稳定、高效的后端系统。通过这篇文章,读者将获得关于后端开发的全面理解和实践指导,从而更好地应对复杂项目需求。
70 0
|
14天前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
9天前
|
监控 API 持续交付
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在后端开发中的应用,分析了其优势、面临的挑战以及最佳实践策略。不同于传统的单体应用,微服务通过细粒度的服务划分促进了系统的可维护性、可扩展性和敏捷性。文章首先概述了微服务的核心概念及其与传统架构的区别,随后详细阐述了构建微服务时需考虑的关键技术要素,如服务发现、API网关、容器化部署及持续集成/持续部署(CI/CD)流程。此外,还讨论了微服务实施过程中常见的问题,如服务间通信复杂度增加、数据一致性保障等,并提供了相应的解决方案和优化建议。总之,本文旨在为开发者提供一份关于如何在现代后端系统中有效采用和优化微服务架构的实用指南。 ####
|
11天前
|
消息中间件 设计模式 运维
后端开发中的微服务架构实践与挑战####
本文深入探讨了微服务架构在现代后端开发中的应用,通过实际案例分析,揭示了其在提升系统灵活性、可扩展性及促进技术创新方面的显著优势。同时,文章也未回避微服务实施过程中面临的挑战,如服务间通信复杂性、数据一致性保障及部署运维难度增加等问题,并基于实践经验提出了一系列应对策略,为开发者在构建高效、稳定的微服务平台时提供有价值的参考。 ####
|
11天前
|
消息中间件 监控 数据管理
后端开发中的微服务架构实践与挑战####
【10月更文挑战第29天】 在当今快速发展的软件开发领域,微服务架构已成为构建高效、可扩展和易于维护应用程序的首选方案。本文探讨了微服务架构的核心概念、实施策略以及面临的主要挑战,旨在为开发者提供一份实用的指南,帮助他们在项目中成功应用微服务架构。通过具体案例分析,我们将深入了解如何克服服务划分、数据管理、通信机制等关键问题,以实现系统的高可用性和高性能。 --- ###
35 2
|
19天前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
85 3
|
21天前
|
缓存 运维 监控
后端开发中的微服务架构实践与挑战#### 一、
【10月更文挑战第22天】 本文探讨了微服务架构在后端开发中的应用实践,深入剖析了其核心优势、常见挑战及应对策略。传统后端架构难以满足快速迭代与高可用性需求,而微服务通过服务拆分与独立部署,显著提升了系统的灵活性和可维护性。文章指出,实施微服务需关注服务划分的合理性、通信机制的选择及数据一致性等问题。以电商系统为例,详细阐述了微服务改造过程,包括用户、订单、商品等服务的拆分与交互。最终强调,微服务虽优势明显,但落地需谨慎规划,持续优化。 #### 二、

推荐镜像

更多