哈喽各位同学们大家好呀,小编今天带着开发者学院中课程“Dubbo分布式框架介绍与3.0新特性”干货总结来了~一起学习新课程吧!
课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇
课程名称:Dubbo 分布式服务治理实践
课程地址:https://developer.aliyun.com/learning/course/72/detail/1185?spm=a2c6h.21258778.0.0.6abe6a00IzvBvY
图谱名称:Alibaba Java 技术图谱
图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ
Dubbo 分布式服务治理实践
一、Dubbo课程环境介绍
1)阿里Java开发者学院2021最新课程
Dubbo相比传统分布式框架有很大差别,Dubbo本身解决的问题不仅仅是服务调用,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。所以相比传统RPC,在架构层次上又做了一次很重要的升级,这个课程是作为Java服务课程前置的非常重要的学习课程。
阿里巴巴专家亲自授课,覆盖最新Spring Cloud微服务架构:
2)Dubbo分布式服务治理框架实战—步步为赢
如果是刚工作不久的同学,可以看一下 Java的高级编程知识,包括我虚拟机、多线程等编程框架。希望大家在做架构师对公司框架有深入、系统的研究。回顾整个Dubbo分布式框架,在开源社区的影响非常大,主要在微服务架构流行之前,实际已经在做大规模的分布式服务集群的开发、落地、治理工作。Dubbo很多经典设计模式和思想挑战性问题,目前在微服务架构中用到了相同的技术条件和问题,有很重要的参考、对比价值。
在做架构师技术选型的时候,不能只会一个框架,很多公司的框架实际是定死的,作为架构师照搬就行。但是对于架构师的要求来说,还是希望能够精通多种架构方式,这样在应对不同的问题、不同的场景的时候,能有更多合理性选择。
Dubbo从理论到架构设计模式,逐步带入实战练习,模拟订单服务、模拟机群,客户端实现调用操作。在实战过程中,希望大家把其他的组件给用起来,比如说 Dubbo注册中心等,逐步联系起来。当然Dubbo本身也有自己的监控组件,有自己的熔断机制。
二、Dubbo3.0分布式服务治理框架新特性
1)分布式服务治理框架Dubbo介绍
Dubbo已经发展到3.0,经过很长时间迭代,在阿里巴巴集团内部大量使用,在官网上有介绍。回顾整个分布式架构发展历史,淘宝诞生在2003年,经历过非常典型的各种分布式架构发展过程,淘宝本身有自己的分布式框架 hsf,hsf和Dubbo设计思想有很多相似之处,协议、集群治理也有很多重合的地方。但是Dubbo本身是使用的更广泛,在业界影响力更大。
Dubbo优秀的地方在于,整个架构诞生在SOS时代,但是有RPC思想的影子,相比传统的RPC框架,Dubbo走的路线更高了一个层级,做大规模服务的解耦和治理的工作,管控服务,实现服务的查找、发现、负载均衡、上线下线以及流量管控等功能。
今天来看,不仅阿里巴巴,行业里面有很多公司在用Dubbo框架,阿里在2017年又重新启动了Dubbo开源工作,发展的越来越完善。但是Dubbo本身并不是一个强大的体系,还要借助其他的技术组件,实现整个服务治理工作。
分布式服务治理框架Dubbo介绍总结:
1. Dubbo是一个阿里巴巴开源的分布式RPC服务治理框架;
2. 致力于提供高性能和透明化的RPC远程服务调用方案;
3. 是阿里巴巴SOA服务化治理方案的核心框架;
4. 每天为2,000+个服务提供3,000,000,000+次访问量支持;
5. 并被广泛应用于阿里巴巴集团的各成员站点。
6. 官方网站 http://dubbo.io/;
7. 源码:https://github.com/alibaba/dubbo;
8. 下载:http://repo1.maven.org/maven2/com/alibaba/dubbo;
9. 微博:http://weibo.com/dubbo。
2)Dubbo发展历程
Dubbo 2008年诞生,后面有一段时间不维护了,开源项目也会受到成员工作繁忙程度等因素的影响。2017年又重新启动,进入孵化器。2020年启动3.0,开启微服务时代,对Dubbo进行升级扩充,在微服务时代Dubbo向新的层级进行兼容和支持。
3)Dubbo3.0—架构升级扩展:多协议+云原生
Dubbo之前也支持各种不同的通讯协议、虚拟化协议,而且部署方式相比的HSF更多元化、更灵活。目前在设计角度很明显的增强,是开始支持GRPC行业级协议,成为行业标准。很多接口都用包括K8S,大量调度。另外像HTTP2,是HTTP协议新的升级版本,包括负载均衡策略以及路由策略都定了增强,这些Dubbo做的比较好的地方。Dubbo在3.0以后,整个生态会变得更强大,多协议向云原生靠拢。
4)Dubbo服务治理框架
整体来说,Dubbo本身是作为一个非常优秀的服务治理,服务治理指的并不是简单SOA架构,指的是大规模服务集群的量级,是Dubbo较强大的地方。当然如果只有一个服务两个服务的话,Dubbo也可以做,理论上可以支持更高、更复杂的架构。Dubbo服务治理框架总结:
1. SOA架构解决架构的异构交互问题;
2. 可以实现不同语言直接功能接口的重用;
3. 普通的服务框架解决开发Web服务接口开发;
4. 服务注册+ 服务管理+ 服务发现+健康监控;
5. Dubbo是一个分布式RPC SOA服务治理框架;
6. 致力于提供高性能和透明化的RPC远程服务调用方案;
7. 是阿里巴巴SOA服务化治理方案的核心框架;
8. 每天为2,000+个服务;
9. 提供3,000,000,000+次访问量支持;
10. 并被广泛应用于阿里巴巴集团的各成员站点。
5)阿里巴巴Dubbo架构演化
Dubbo诞生的时间比较早,做架构设计的时候,看到包括单体、分层、分布式架构、微服务架构等,Dubbo是在不断的做迭代、扩展、演化。在架构改造上Dubbo是越来越丰富,协议上是越来越越复杂,也支持多元化。
Java Spring Cloud目前来看,主要还是REST API协议,对于公网是一个很好的选择,但是对于局域网,尤其是系统架构全部是Java,统一语言的场景的情况下,用同一种协议更好。比如更接近于TPP协议的通讯协议效率会更高。
实际上比较好的分布式框架,应该尽量适用公网和局域网通信的两种不同场景,Dubbo就具备这种特征。
6)SOA架构演化
1. 单一应用架构
• 当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
• 此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
2. 垂直应用架构
• 当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效率。
• 此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
3. 分布式服务架构
• 当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
• 此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。
4. 流动计算架构
• 当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。
• 此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。
7)Dubbo优缺点
1. 透明化的远程方法调用
• 像调用本地方法一样调用远程方法;只需简单配置,没有API侵入。
2. 软负载均衡及容错机制
• 可在内网替代nginx lvs等硬件负载均衡器。
3. 服务注册中心自动注册 & 配置管理
• 不需要写死服务提供者地址,基于接口名自动查询提供者。使用类似zookeeper等分布式协调服务作为服务注册中心,可以将绝大部分项目配置移入zookeeper集群。
4. 服务接口监控与治理
• Dubbo-admin与Dubbo-monitor提供了完善的服务接口管理与监控功能,针对不同应用的不同接口,可以进行 多版本,多协议,多注册中心管理。
8)Dubbo&HSF&Spring Cloud对比
大家在做技术选型的时候,如果你选Spring Cloud做微服架构是可以的,它的整个体系比较完善,组件体系应该有50个左右非常多,而且比较完善,阿里也贡献了Spring Cloud一系列框架,整个社区项目非常完善,是做微服务的一个选择。
Dubbo现在也开始支持REST API,成为微服务有效版图中的一块。Dubbo更强的是,做企业局域网分布式架构的大规模集群改造,用Dubbo协议层次上会做的更优秀。
淘宝的HSF相对来说生态没有那么好,主要是在阿里内部有,而Dubbo在社区内遍地开花,成为顶级项目,这是Dubbo比较优秀的地方。