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

本文涉及的产品
Serverless 应用引擎免费试用套餐包,4320000 CU,有效期3个月
性能测试 PTS,5000VUM额度
服务治理 MSE Sentinel/OpenSergo,Agent数量 不受限
简介: 带你读《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

相关文章
|
3月前
|
Dubbo Java 应用服务中间件
Spring Cloud Dubbo:微服务通信的高效解决方案
【10月更文挑战第15天】随着信息技术的发展,微服务架构成为企业应用开发的主流。Spring Cloud Dubbo结合了Dubbo的高性能RPC和Spring Cloud的生态系统,提供高效、稳定的微服务通信解决方案。它支持多种通信协议,具备服务注册与发现、负载均衡及容错机制,简化了服务调用的复杂性,使开发者能更专注于业务逻辑的实现。
86 2
|
4月前
|
存储 SQL 缓存
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
快手 OLAP 系统为内外多个场景提供数据服务,每天承载近 10 亿的查询请求。原有湖仓分离架构,由离线数据湖和实时数仓组成,面临存储冗余、资源抢占、治理复杂、查询调优难等问题。通过引入 Apache Doris 湖仓一体能力,替换了 Clickhouse ,升级为湖仓一体架构,并结合 Doris 的物化视图改写能力和自动物化服务,实现高性能的数据查询以及灵活的数据治理。
快手:从 Clickhouse 到 Apache Doris,实现湖仓分离向湖仓一体架构升级
|
4月前
|
安全 应用服务中间件 API
微服务分布式系统架构之zookeeper与dubbo-2
微服务分布式系统架构之zookeeper与dubbo-2
|
2月前
|
存储 SQL Apache
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
Apache Doris 是一个基于 MPP 架构的高性能实时分析数据库,以其极高的速度和易用性著称。它支持高并发点查询和复杂分析场景,适用于报表分析、即席查询、数据仓库和数据湖查询加速等。最新发布的 2.0.2 版本在性能、稳定性和多租户支持方面有显著提升。社区活跃,已广泛应用于电商、广告、用户行为分析等领域。
Apache Doris 开源最顶级基于MPP架构的高性能实时分析数据库
|
2月前
|
Dubbo Cloud Native 应用服务中间件
阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。
在云原生时代,微服务架构成为主流。阿里云的 Dubbo 和 Nacos 深度整合,提供了高效的服务注册与发现、配置管理等关键功能,简化了微服务治理,提升了系统的灵活性和可靠性。示例代码展示了如何在项目中实现两者的整合,通过 Nacos 动态调整服务状态和配置,适应多变的业务需求。
64 2
|
2月前
|
分布式计算 大数据 Apache
Apache Spark & Paimon Meetup · 北京站,助力 LakeHouse 架构生产落地
2024年11月15日13:30北京市朝阳区阿里中心-望京A座-05F,阿里云 EMR 技术团队联合 Apache Paimon 社区举办 Apache Spark & Paimon meetup,助力企业 LakeHouse 架构生产落地”线下 meetup,欢迎报名参加!
114 3
|
3月前
|
Dubbo Java 应用服务中间件
Dubbo学习圣经:从入门到精通 Dubbo3.0 + SpringCloud Alibaba 微服务基础框架
尼恩团队的15大技术圣经,旨在帮助开发者系统化、体系化地掌握核心技术,提升技术实力,从而在面试和工作中脱颖而出。本文介绍了如何使用Dubbo3.0与Spring Cloud Gateway进行整合,解决传统Dubbo架构缺乏HTTP入口的问题,实现高性能的微服务网关。
|
4月前
|
Dubbo 应用服务中间件 Apache
Star 4w+,Apache Dubbo 3.3 全新发布,Triple X 领衔,开启微服务通信新时代
在 Apache Dubbo 突破 4w Star 之际,Apache Dubbo 团队正式宣布,Dubbo 3.3 正式发布!作为全球领先的开源微服务框架,Dubbo 一直致力于为开发者提供高性能、可扩展且灵活的分布式服务解决方案。此次发布的 Dubbo 3.3,通过 Triple X 的全新升级,突破了以往局限,实现了对南北向与东西向流量的全面支持,并提升了对云原生架构的友好性。
163 14
|
3月前
|
SQL 存储 分布式计算
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
大数据-157 Apache Kylin 背景 历程 特点 场景 架构 组件 详解
54 9
|
3月前
|
存储 分布式计算 druid
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
大数据-155 Apache Druid 架构与原理详解 数据存储 索引服务 压缩机制
80 3

推荐镜像

更多