Statistics
28
Views
0
Downloads
0
Donations
Uploader

高宏飞

Shared on 2025-12-15
Support
Share

Authorit-ebooks

No description

Tags
No tags
Publisher: it-ebooks
Publish Year: 2021
Language: 中文
File Format: PDF
File Size: 1.4 MB
Support Statistics
¥.00 · 0times
Text Preview (First 20 pages)
Registered users can read the full content for free

Register as a Gaohf Library member to read the complete e-book online for free and enjoy a better reading experience.

(This page has no text content)
扫一扫 钉钉扫一扫 免费领取同步课程 进入官方答疑群 开发者学院【Alibaba Java技术图谱】 阿里云开发者“藏经阁” 更多好课免费学 海量电子书免费下载
推荐理由 Dubbo 是阿里巴巴开源的高性能分布式 RPC 服务治理框架,已经捐献给 Apache 开 源组织。最新的版本是 3.0。在阿里巴巴、工行、电信、银联、中国人寿、网易、滴滴当 当等互联网公司中有大规模使用,历经双 11 等流量检验。Dubbo 提供了六大核心能力: 面向接口代理的高性能 RPC 调用,智能容错和负载均衡,服务自动注册和发现,高度可 扩展能力,运行期流量调度,可视化的服务治理与运维,功能强大。未来支持 Go、K8S 云原生等技术。代表着高性能微服务架构的发展方向。
目录 1. Dubbo 分布式框架介绍与 3.0 新特性 5 2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 14 3. Dubbo3.0 分布式 RPC协议解析 20 4. Dubbo 分布式Order 订单服务集群治理实战 25 5. Dubbo 集成 Nacos 注册中心实战 33
5 > 1. Dubbo 分布式框架介绍与 3.0 新特性 1. Dubbo 分布式框架介绍与 3.0 新特性 内容简介: 一、Dubbo 课程环境介绍 二、Dubbo3.0 分布式服务治理框架新特性 一、Dubbo 课程环境介绍 1. 阿里 Java 开发者学院 2021 最新课程 Dubbo 相比传统分布式框架有很大差别,Dubbo 本身解决的问题不仅仅是服务调 用,致力于提供高性能和透明化的 RPC 远程服务调用方案,以及 SOA 服务治理方案。 所以相比传统 RPC,在架构层次上又做了一次很重要的升级,这个课程是作为 Java 服 务课程前置的非常重要的学习课程。 阿里巴巴专家亲自授课,覆盖最新 Spring Cloud 微服务架构:
1. Dubbo 分布式框架介绍与 3.0 新特性 < 6 2. Dubbo 分布式服务治理框架实战—步步为赢 如果是刚工作不久的同学,可以看一下 Java 的高级编程知识,包括我虚拟机、多 线程等编程框架。希望大家在做架构师对公司框架有深入、系统的研究。回顾整个 Dubbo 分布式框架,在开源社区的影响非常大,主要在微服务架构流行之前,实际已经 在做大规模的分布式服务集群的开发、落地、治理工作。Dubbo 很多经典设计模式和思 想挑战性问题,目前在微服务架构中用到了相同的技术条件和问题,有很重要的参考、 对比价值。 在做架构师技术选型的时候,不能只会一个框架,很多公司的框架实际是定死的, 作为架构师照搬就行。但是对于架构师的要求来说,还是希望能够精通多种架构方式, 这样在应对不同的问题、不同的场景的时候,能有更多合理性选择。 Dubbo 从理论到架构设计模式,逐步带入实战练习,模拟订单服务、模拟机群,客 户端实现调用操作。在实战过程中,希望大家把其他的组件给用起来,比如说 Dubbo 注册中心等,逐步联系起来。当然 Dubbo 本身也有自己的监控组件,有自己的熔断机制。
7 > 1. Dubbo 分布式框架介绍与 3.0 新特性 二、Dubbo3.0 分布式服务治理框架新特性 1. 分布式服务治理框架Dubbo介绍 Dubbo 已经发展到 3.0,经过很长时间迭代,在阿里巴巴集团内部大量使用,在官 网上有介绍。回顾整个分布式架构发展历史,淘宝诞生在 2003 年,经历过非常典型的各 种分布式架构发展过程,淘宝本身有自己的分布式框架 hsf,hsf 和 Dubbo 设计思想有 很多相似之处,协议、集群治理也有很多重合的地方。但是 Dubbo 本身是使用的更广泛, 在业界影响力更大。 Dubbo 优秀的地方在于,整个架构诞生在 SOS 时代,但是有 RPC 思想的影子,相比 传统的 RPC 框架,Dubbo 走的路线更高了一个层级,做大规模服务的解耦和治理的工 作,管控服务,实现服务的查找、发现、负载均衡、上线下线以及流量管控等功能。
1. Dubbo 分布式框架介绍与 3.0 新特性 < 8 今天来看,不仅阿里巴巴,行业里面有很多公司在用 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 向新的层级进行兼容和支持。
9 > 1. Dubbo 分布式框架介绍与 3.0 新特性 3. Dubbo3.0 —— 架构升级扩展:多协议+云原生 Dubbo 之前也支持各种不同的通讯协议、虚拟化协议,而且部署方式相比的 HSF 更多元化、更灵活。目前在设计角度很明显的增强,是开始支持 GRPC 行业级协议,成 为行业标准。很多接口都用包括 K8S,大量调度。另外像 HTTP2,是 HTTP 协议新的升 级版本,包括负载均衡策略以及路由策略都定了增强,这些 Dubbo 做的比较好的地方。 Dubbo 在 3.0 以后,整个生态会变得更强大,多协议向云原生靠拢。 4. Dubbo 服务治理框架 整体来说,Dubbo 本身是作为一个非常优秀的服务治理,服务治理指的并不是简单 SOA 架构,指的是大规模服务集群的量级,是 Dubbo 较强大的地方。当然如果只有一 个服务两个服务的话,Dubbo 也可以做,理论上可以支持更高、更复杂的架构。Dubbo 服务治理框架总结:
1. Dubbo 分布式框架介绍与 3.0 新特性 < 10 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 就具备这种特征。
11 > 1. Dubbo 分布式框架介绍与 3.0 新特性 6. SOA架构演化 1)单一应用架构  当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和 成本。  此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。 2)垂直应用架构  当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相 干的几个应用,以提升效率。  此时,用于加速前端页面开发的 Web框架(MVC) 是关键。 3)分布式服务架构  当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的 服务,逐渐形成稳定的服务中心,使前端应用能更快速的响应多变的市场需求。
1. Dubbo 分布式框架介绍与 3.0 新特性 < 12  此时,用于提高业务复用及整合的 分布式服务框架(RPC) 是关键。 4)流动计算架构  当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一 个调度中心基于访问压力实时管理集群容量,提高集群利用率。  此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。 7. Dubbo 优缺点 1)透明化的远程方法调用  像调用本地方法一样调用远程方法;只需简单配置,没有 API 侵入。 2)软负载均衡及容错机制  可在内网替代 nginx lvs 等硬件负载均衡器。 3)服务注册中心自动注册 & 配置管理  不需要写死服务提供者地址,基于接口名自动查询提供者。使用类似 zookeeper 等 分布式协调服务作为服务注册中心,可以将绝大部分项目配置移入zookeeper集群。
13 > 1. Dubbo 分布式框架介绍与 3.0 新特性 4)服务接口监控与治理  Dubbo-admin 与 Dubbo-monitor 提供了完善的服务接口管理与监控功能,针对不 同应用的不同接口,可以进行 多版本,多协议,多注册中心管理。 8. Dubbo&HSF&Spring Cloud 对比 大家在做技术选型的时候,如果你选 Spring Cloud 做微服架构是可以的,它的整个 体系比较完善,组件体系应该有 50 个左右非常多,而且比较完善,阿里也贡献了 Spring Cloud 一系列框架,整个社区项目非常完善,是做微服务的一个选择。 Dubbo 现在也开始支持 REST API,成为微服务有效版图中的一块。Dubbo 更强的 是,做企业局域网分布式架构的大规模集群改造,用 Dubbo 协议层次上会做的更优秀。 淘宝的 HSF 相对来说生态没有那么好,主要是在阿里内部有,而 Dubbo 在社区内 遍地开花,成为顶级项目,这是 Dubbo 比较优秀的地方。
2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 < 14 2. Dubbo分布式加与淘宝双11大规模服 务集群治理 内容简介: 一、Dubbo 分布式架构 二、Dubbo 分布式集群架构 三、Dubbo 核心组件 四、Dubbo SOA 服务治理 五、Dubbo 未来底层同步与异步架构 六、Dubbo 分布式架构与 Remoting 一、Dubbo 分布式架构
15 > 2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 Dubbo 架构主要分为两个部分:客户端与服务端,也可称为 Dubbo 消费者和 Dubbo 提供者。 例如电商网站,要调支付服务、物流服务、订单服务、监控服务、大数据服务等, 服务是某些功能的封装,这些是提供者所提供的服务。作为客户端的话,用户要调用这 些服务去完成某些业务功能,因为客户端和服务端是位于不同进程,位于分布式网络中 不同的节点上,这是典型的一个架构。如果客户端和服务端两个都是单体的话,则为最 简单的分布式架构。 随着业务的不断发展,架构也会不断演化。有些业务是大规模的集群,此时单点调 用无法解决问题,这是由于服务端可能有 10 台、100 台、1000 台甚至更多。同样的服 务有时候上线有时候下线,无法预估有多少台可能会上线,多少台会下线,此时需要使 用集群的弹性收缩功能解决这个问题。 如果集群从上线到下线到运行一直都是 10 台,则正常情况就能满足需求。但如果在 某些大型业务场景,例如双 11 时,平时 10 台可以满足的业务,在双 11 的时候可能需 要 1000 台,甚至上万台进行支撑。因此,不同的业务集群规模是不一样的,小规模集群 可能直接基于 IP 进行集群搭建就可以,大规模集群则需要对接多个不同的局域网,基于 域名的方式进行调度的情况可能更多一点。 因此,Dubbo 分布式架构不仅仅是客户端和服务端、消费者和提供者这样的调用关 系,它解决的是大规模客户端与大规模服务端的管理问题。
2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 < 16 简单的架构要解决技术问题的话,它还需要有一个注册中心,还有应用监控中心, 这就是典型的 Dubbo 早期解决问题。 二、Dubbo 分布式集群架构 在这个基础上,如果服务是不定数量的大规模集群,就需架构进一步去升级改造。 注册中心可能是个集群,监控中心可能是个集群,在大型业务场景下,服务可能也 是个集群。 无论是支付服务、订单服务、商品服务、账号服务等,都可以根据自己的实际的并 发需求,去部署不定规格、不定数量的大规模服务集群。Dubbo 联合其他技术人员给用 户提供快速上线、包括管理的服务。Dubbo 不仅解决分布式调用的问题,还解决了多协 议大规模集群的治理问题,这也是 Dubbo 在其他大型互联网公司中收到广泛好评的原 因。
17 > 2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 三、Dubbo 核心组件 Dubbo 主要有以下核心组件:  Provider:服务的提供方,通过 Jar 或者容器的方式启动服务  Consumer:服务消费方  Registry:注册中心  Monitor:统计服务和调用次数,调用时间监控中心。(Dubbo 的控制台页面中可 以显示,目前只有一个简单版本)  Container:服务运行的容器 四、Dubbo SOA 服务治理 Dubbo 诞生于 SOA 盛行的 2008 年,早期基于Web Service 中心 SOA 服务治理, 后面在这个基础上逐渐开始大规模的扩充,服务之间关系越来越复杂。此时需要治理中
2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 < 18 心,用来做大规模的流量调度、监控等,这些都是极具挑战性的问题,因此阿里开发了 很多工具在内部去解决这些问题。 对于这些挑战性问题,Dubbo 的许多观点思想与目前微服务架构 Spring Cloud 不 谋而合。这是由于当微服务到了大规模集群的层次上,无论怎么拆,它终究会面临这些 问题,例如熔断限流,负载均衡,流量调度,安全治理等。 2013~2017 年 Dubbo 疏于维护,而这是 Spring Cloud 蓬勃发展时期,逐渐成为 世界级微服务框架,但从某种程度上来说,Dubbo 可以称为 Spring Cloud 的前辈。 五、Dubbo 未来底层同步与异步架构 Dubbo 从 3.0 版本开始,也在做服务高并发、协议等方面的改造。如云原生支持的 改造,去支持底层的高并发高吞吐量,去对接 K8s 云原生的工具,协议层支持 RPC
19 > 2. Dubbo 分布式加与淘宝双 11大规模服务集群治理 等新的类型,从而让 Dubbo 整个通信协议更多样化,使用户在不同场景下可以选择不同 的实践方式。 异步请求和同步请求各有优势,异步请求优势在于非阻塞,同步请求的优势在于即 时性,但如果是阻塞操作、长时间操作的话,可能会导致线程卡死的状况,影响整体的 并发。 Dubbo 整个分布架构是更高层级的架构,它是大规模服务集群,不仅仅是开发落地, 而且要大规模服务治理,它的实践经验给其他互联网公司的架构提供了很好的参考。 六、Dubbo 分布式架构与 Remoting Dubbo 分布式架构的远程通讯(Remoting)提供对多种 NIO 框架抽象封装,包括 “同步转异步”和“请求-响应”模式的信息交换方式。
3. Dubbo3.0 分布式 RPC协议解析 < 20 3. Dubbo3.0 分布式 RPC协议解析 内容简介: 一、Dubbo 分布式 RPC 协议解析 二、高级面试题:Dubbo 支持的协议 三、Dubbo 默认协议 四、Dubbo 线程消息分发模型 五、Dubbo 提供的注册中心 一、Dubbo 分布式 RPC协议解析 Dubbo 是 RPC 基础上改造的一套框架,底层分时通信的基础设施没变,主要是在 协议层另做了一层封装,封装思路是大规模服务集群治理,希望支持更多协议,不仅仅 是Webservice,或者 REST API 这种风格的通信,而是直接封装的服务接口,发送授信 协议进行通信,基于汽车网络协议中的MQTT 再次封装。 企业局域网通信,即使有公网通信,有些平台也希望定制自己的协议,典型代表有 QQ、微信和阿里钉钉,封闭的聊天系统里面通信很多,Dubbo 是自定义协议,实际在 此基础上提供协议的再次封装,如在 TCP 基础上,不仅支持 REST,传统跨平台跨语言 的企业级行业协议,另外还会做一些协议扩展,效率方面有更高要求,希望在原生的 TCP 或者 UDP 基础上,在二进制数据包上做封装。
The above is a preview of the first 20 pages. Register to read the complete e-book.