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

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

相关文章
|
5月前
|
Cloud Native Serverless API
微服务架构实战指南:从单体应用到云原生的蜕变之路
🌟蒋星熠Jaxonic,代码为舟的星际旅人。深耕微服务架构,擅以DDD拆分服务、构建高可用通信与治理体系。分享从单体到云原生的实战经验,探索技术演进的无限可能。
微服务架构实战指南:从单体应用到云原生的蜕变之路
|
前端开发 Java API
微服务——SpringBoot使用归纳——Spring Boot集成 Swagger2 展现在线接口文档—— Swagger 简介
第6课介绍了在Spring Boot中集成Swagger2以展示在线接口文档的方法。随着前后端分离架构的发展,API文档成为连接前端与后端开发的重要纽带。然而,代码更新频繁导致文档难以同步维护,Swagger2解决了这一问题。通过Swagger,在线API文档不仅方便了接口调用方查看和测试,还支持开发者实时测试接口数据。本文使用Swagger 2.2.2版本,讲解如何在Spring Boot项目中导入并配置Swagger2工具,从而高效管理接口文档。
411 0
|
8月前
|
缓存 Cloud Native Java
Java 面试微服务架构与云原生技术实操内容及核心考点梳理 Java 面试
本内容涵盖Java面试核心技术实操,包括微服务架构(Spring Cloud Alibaba)、响应式编程(WebFlux)、容器化(Docker+K8s)、函数式编程、多级缓存、分库分表、链路追踪(Skywalking)等大厂高频考点,助你系统提升面试能力。
878 0
|
Java 开发者 微服务
从单体到微服务:如何借助 Spring Cloud 实现架构转型
**Spring Cloud** 是一套基于 Spring 框架的**微服务架构解决方案**,它提供了一系列的工具和组件,帮助开发者快速构建分布式系统,尤其是微服务架构。
1705 70
从单体到微服务:如何借助 Spring Cloud 实现架构转型
|
11月前
|
Cloud Native Serverless 流计算
云原生时代的应用架构演进:从微服务到 Serverless 的阿里云实践
云原生技术正重塑企业数字化转型路径。阿里云作为亚太领先云服务商,提供完整云原生产品矩阵:容器服务ACK优化启动速度与镜像分发效率;MSE微服务引擎保障高可用性;ASM服务网格降低资源消耗;函数计算FC突破冷启动瓶颈;SAE重新定义PaaS边界;PolarDB数据库实现存储计算分离;DataWorks简化数据湖构建;Flink实时计算助力风控系统。这些技术已在多行业落地,推动效率提升与商业模式创新,助力企业在数字化浪潮中占据先机。
597 12
|
运维 监控 持续交付
微服务架构解析:跨越传统架构的技术革命
微服务架构(Microservices Architecture)是一种软件架构风格,它将一个大型的单体应用拆分为多个小而独立的服务,每个服务都可以独立开发、部署和扩展。
3558 37
微服务架构解析:跨越传统架构的技术革命
|
传感器 监控 安全
智慧工地云平台的技术架构解析:微服务+Spring Cloud如何支撑海量数据?
慧工地解决方案依托AI、物联网和BIM技术,实现对施工现场的全方位、立体化管理。通过规范施工、减少安全隐患、节省人力、降低运营成本,提升工地管理的安全性、效率和精益度。该方案适用于大型建筑、基础设施、房地产开发等场景,具备微服务架构、大数据与AI分析、物联网设备联网、多端协同等创新点,推动建筑行业向数字化、智能化转型。未来将融合5G、区块链等技术,助力智慧城市建设。
676 1
|
存储 NoSQL 关系型数据库
微服务——MongoDB简介和体系结构
MongoDB是一种开源、高性能的文档型数据库,采用无模式设计,数据结构灵活,以类似JSON的BSON格式存储。它将记录作为文档,由字段和值对组成,支持复杂数据类型及嵌套结构。相比MySQL,MongoDB去除了传统表结构,使用集合(Collection)存储文档,适合处理非结构化和半结构化数据,简化开发并提升扩展性。其架构更灵活,适用于高并发和大数据场景。
612 0
|
人工智能 安全 Java
微服务引擎 MSE:打造通用的企业级微服务架构
微服务引擎MSE致力于打造通用的企业级微服务架构,涵盖四大核心内容:微服务技术趋势与挑战、MSE应对方案、拥抱开源及最佳实践。MSE通过流量入口、内部流量管理、服务治理等模块,提供高可用、跨语言支持和性能优化。此外,MSE坚持开放,推动云原生与AI融合,助力企业实现无缝迁移和高效运维。
640 1

热门文章

最新文章

推荐镜像

更多