Dubbo阶段性总结及3.0新特性

本文涉及的产品
云原生大数据计算服务 MaxCompute,5000CU*H 100GB 3个月
云原生大数据计算服务MaxCompute,500CU*H 100GB 3个月
简介: 该文章是对Dubbo技术的一次总结,包括对Dubbo框架的整体架构、服务提供者发布注册原理、SPI机制、服务消费者订阅原理、服务调用原理、线程池模型、负载均衡机制、服务容错机制等内容的回顾,并简要介绍了Dubbo 3.0的新特性。

前言

学习dubbo有一段时间了,今天我们来对Dubbo的技术进行一次总结,我们之前学过了Dubbo框架的整体架构,服务提供者发布注册原理,Dubbo的SPI机制,服务消费者订阅原理,服务调用原理,Dubbo线程池模型,Dubbo负载均衡机制,Dubbo服务容错机制等,下面是Dubbo知识体系脑图。

从上图看出Dubbo涉及的技术点非常多,这些技术点其实在大部分的分布式中间件中都有体现,比如mq,redis,mysql,分布式定时任务,Dubbo框架其实和很多中间件的原理类似,比如Rocketmq,Rocketmq其实本质上是两次rpc通信,它同样涉及到远程通信,负载均衡,线程池,服务容错机制等等技术,因此学习Dubbo对于我们技术人来说还是很有意义的。

做完总结,我们看一看Dubbo常见的几个问题点。

一、​如何理解Dubbo框架?

Apache Dubbo 是一款高性能、轻量级的开源Java RPC框架,它提供了六大核心能力:

1、面向接口的远程方法调用,

2、智能容错和负载均衡,

3、以及服务自动注册和发现。

4、高度可扩展能力(自研spi机制)

5、运行期流量调度(内置条件、脚本等路由策略,通过配置不同的路由规则,轻松实现灰度发布,同机房优先等功能)

6、可视化的服务治理与运维。

二、支持哪些负载均衡算法

1、加权随机

2、加权轮训

3、最少活跃数

4、一致性hash

三、​Dubbo是否支持大数据对象传输,如何处理?

Dubbo 的设计目的是为了满足高并发小数据量的 rpc 调用,在大数据量下的性能表现并不好,建议使用 rmi 或 http 协议。

当dubbo服务提供层向消费层传输大数据容量的对象时,会受到Dubbo的限制,报类似如下异常:

com.alibaba.dubbo.remoting.transport.AbstractCodec.checkPayload() java.io.IOException: Data length too large: 11557050, max payload: 8388608(默认只支持8M)

dubbo传输大数据对象两种解决方案

1、修改提供方的dubbo配置,在dubbo.properties 中增加如下配置,修改dubbo传输数据大小​。

dubbo.protocol.dubbo.payload=11557050(默认为8M,即8388608)

2、引入第三方大数据存储介质,比如mongodb,​分布式文件服务oss等。服务提供者存储数据到这些介质中,在服务消费方拿到唯一地址,再从第三方介质​服务中获取数据。

Dubbo3.0的新特性

最后,Dubbo的3.0版本已经发布一年了,Dubbo3.0相比于2.0+的版本有比较大的改动,​Dubbo3.0有哪些关键新特性呢?

1、支持应用级服务发现

我们知道dubbo2.0+的版本dubbo都是按接口的维度来实现服务注册发现,dubbo3.0开始支持应用级服务发现,这个功能其实和spring cloud就非常融入了,spring cloud是最先有面向应用的服务注册发现机制的,这也为dubbo接入spring cloud​打下铺垫。应用级服务发现最大的好处在于它可以减轻注册中心的压力,因为相比于面向接口的服务注册发现,注册中心可以存储更少的元数据,减轻注册中心推送存储压力,消费者端地址计算压力递减。 进一步提升了 Dubbo3 在大规模集群实践中的性能与稳定性。

2、新的rpc协议Triple

它是基于 HTTP/2 上构建的 RPC 协议,完全兼容 gRPC,并在此基础上扩展出了更丰富的语义。

3、更好的开发云原生应用

Dubbo3 构建的业务应用可直接部署在 VM、Container、Kubernetes 等平台,Dubbo3 很好的解决了 Dubbo 服务与调度平台之间的生命周期对齐,Dubbo 服务发现地址 与容器平台绑定的问题。

相关实践学习
基于MaxCompute的热门话题分析
本实验围绕社交用户发布的文章做了详尽的分析,通过分析能得到用户群体年龄分布,性别分布,地理位置分布,以及热门话题的热度。
SaaS 模式云数据仓库必修课
本课程由阿里云开发者社区和阿里云大数据团队共同出品,是SaaS模式云原生数据仓库领导者MaxCompute核心课程。本课程由阿里云资深产品和技术专家们从概念到方法,从场景到实践,体系化的将阿里巴巴飞天大数据平台10多年的经过验证的方法与实践深入浅出的讲给开发者们。帮助大数据开发者快速了解并掌握SaaS模式的云原生的数据仓库,助力开发者学习了解先进的技术栈,并能在实际业务中敏捷的进行大数据分析,赋能企业业务。 通过本课程可以了解SaaS模式云原生数据仓库领导者MaxCompute核心功能及典型适用场景,可应用MaxCompute实现数仓搭建,快速进行大数据分析。适合大数据工程师、大数据分析师 大量数据需要处理、存储和管理,需要搭建数据仓库?学它! 没有足够人员和经验来运维大数据平台,不想自建IDC买机器,需要免运维的大数据平台?会SQL就等于会大数据?学它! 想知道大数据用得对不对,想用更少的钱得到持续演进的数仓能力?获得极致弹性的计算资源和更好的性能,以及持续保护数据安全的生产环境?学它! 想要获得灵活的分析能力,快速洞察数据规律特征?想要兼得数据湖的灵活性与数据仓库的成长性?学它! 出品人:阿里云大数据产品及研发团队专家 产品 MaxCompute 官网 https://www.aliyun.com/product/odps 
相关文章
|
4月前
|
Dubbo Cloud Native 网络协议
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
【Dubbo3技术专题】「服务架构体系」第一章之Dubbo3新特性要点之RPC协议分析介绍
75 1
|
4月前
|
JSON Dubbo Java
微服务框架(二十)Dubbo Spring Boot 生产就绪特性
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。   本文为Dubbo Spring Boot 生产就绪特性
|
4月前
|
Dubbo Cloud Native 应用服务中间件
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
【Dubbo3 终极特性】「云原生三中心架构」带你探索 Dubbo3 体系下的配置中心和元数据中心、注册中心的原理及开发实战(中)
135 1
|
4月前
|
Kubernetes Dubbo 应用服务中间件
【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin
【Dubbo3终极特性】「流量治理体系」一文教你如何搭建Dubbo3的控制台服务Dubbo-Admin
282 0
|
4月前
|
Dubbo Java Docker
微服务框架(一)Spring Boot + Dubbo + Docker 框架特性简述
  此系列文章将会描述Java框架Spring Boot、服务治理框架Dubbo、应用容器引擎Docker,及使用Spring Boot集成Dubbo、Mybatis等开源框架,其中穿插着Spring Boot中日志切面等技术的实现,然后通过gitlab-CI以持续集成为Docker镜像。 本文为此微服务框架的特性简述。 本系列文章中所使用的框架版本为Spring Boot 2.0.3-RELEASE,Spring 5.0.7-RELEASE,Dubbo 2.6.2。
微服务框架(一)Spring Boot + Dubbo + Docker 框架特性简述
|
自然语言处理 Kubernetes 负载均衡
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性概览的介绍说明
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性概览的介绍说明
256 0
|
存储 Kubernetes Dubbo
【Dubbo3终极特性】「云原生三中心架构」带你探索Dubbo3体系下的配置中心和元数据中心、注册中心的原理及开发实战(上)
【Dubbo3终极特性】「云原生三中心架构」带你探索Dubbo3体系下的配置中心和元数据中心、注册中心的原理及开发实战(上)
44992 0
【Dubbo3终极特性】「云原生三中心架构」带你探索Dubbo3体系下的配置中心和元数据中心、注册中心的原理及开发实战(上)
|
负载均衡 监控 Dubbo
【JavaP6大纲】Dubbo篇:Dubbo特性?
【JavaP6大纲】Dubbo篇:Dubbo特性?
|
XML Dubbo IDE
【Dubbo3终极特性】「流量治理体系」一文教你如何通过Dubbo-Admin实现动态进行流量隔离机制
【Dubbo3终极特性】「流量治理体系」一文教你如何通过Dubbo-Admin实现动态进行流量隔离机制
272 0
【Dubbo3终极特性】「流量治理体系」一文教你如何通过Dubbo-Admin实现动态进行流量隔离机制
|
自然语言处理 Kubernetes Dubbo
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性要点之RPC协议分析介绍
【Alibaba微服务技术系列】「Dubbo3.0技术专题」第一章之Dubbo3新特性要点之RPC协议分析介绍
193 0