开发者学堂课程干货总结——Dubbo 分布式服务治理实践(二)

简介: Dubbo 分布式服务治理实践课时2——Dubbo分布式加与大规模服务集群治理 。电子书+视频为同学带来最佳学习效果,文字、课程链接、图谱地址统统为大家放送了哦!

哈喽各位同学们大家好呀,小编今天带着开发者学院中课程Dubbo分布式加与大规模服务集群治理”干货总结来了~一起学习新课程吧!

课程链接以及图谱地址小编已经为大家指路了,搭配学习效果更佳👇

课程名称:Dubbo 分布式服务治理实践

课程地址:https://developer.aliyun.com/learning/course/72/detail/1186?spm=a2c6h.21258778.0.0.6abe6a00HnUwTh

图谱名称:Alibaba Java 技术图谱

图谱地址:https://developer.aliyun.com/graph/java?spm=a2c6h.21110250.J_5703890090.6.700e3c67EjOBeJ


Dubbo分布式加与大规模服务集群治理 


一、Dubbo分布式架构 

image.png 

Dubbo架构主要分为两个部分:客户端服务端,也可称为Dubbo消费者和Dubbo提供者。 

例如电商网站,要调支付服务、物流服务订单服务监控服务、大数据服务等,服务是某些功能的封装,这些是提供者所提供的服务。作为客户端的话,用户要调用这些服务去完成某些业务功能因为客户端和服务端是位于不同进程,位于分布式网络中不同的节点上这是典型的一个架构。如果客户端和服务端两个都是单体的话,则为最简单的分布式架构。 

随着业务的不断发展,架构会不断演化有些业务是大规模的集群,此时单点调用无法解决问题这是由于服务端可能有10台100台1000台甚至更多。同样的服务有时候上线有时候下线,无法预估有多少台可能会上线,多少台会下线,此时需要使用集群的弹性收缩功能解决这个问题。 

如果集群从上线到下线到运行一直都是10台,则正常情况就能满足需求。但如果在某些大型业务场景,例如双11平时10台可以满足的业务,在双11的时候可能需要1000台,甚至上万台进行支撑因此不同的业务集群规模是不一样的小规模集群可能直接基于IP进行集群搭建就可以,大规模集群则需要对接多个不同的局域网,基于域名的方式进行调度的情况可能更多一点。 

因此,Dubbo分布式架构不仅是客户端和服务端消费者和提供者这样调用关系,它解决的是大规模客户端与大规模服务端的管理问题。 

简单的架构要解决技术问题的话,它还需要有一个注册中心,还有应用监控中心,这就是典型的Dubbo早期解决问题。 

 

 

二、Dubbo分布式集群架构 

这个基础上,如果服务是不定数量的大规模集群,就需架构进一步去升级改造。 

image.png 

注册中心可能是个集群,监控中心可能是个集群,在大型业务场景下,服务可能也是个集群。 

无论是支付服务、订单服务、商品服务、账号服务等,都可以根据自己的实际的并发需求,去部署不定规格、不定数量的大规模服务集群。Dubbo联合其他技术人员给用户提供快速上线包括管理的服务Dubbo不仅解决分布式调用的问题,还解决了多协议大规模集群的治理问题,这也是Dubbo在其他大型互联网公司中收到广泛好评的原因 

 

 

三、Dubbo核心组件 

  • Dubbo主要有以下核心组件: 
  1. Provider:服务的提供方,通过Jar或者容器的方式启动服务 
  2. Consumer:服务消费方 
  3. Registry:注册中心 
  4. Monitor:统计服务和调用次数,调用时间监控中心。(Dubbo的控制台页面中可以显示,目前只有一个简单版本 
  5. Container:服务运行的容器 

 

 

四、Dubbo SOA服务治理 

image.png 

Dubbo诞生于SOA盛行的2008年,早期基于Web Service中心SOA服务治理,后面在这个基础上逐渐开始大规模的扩充,服务之间关系越来越复杂。此时需要治理中心,用来做大规模的流量调度、监控等,这些都是极具挑战性的问题,因此阿里开发了很多工具在内部去解决这些问题。 

对于这些挑战性问题,Dubbo的许多观点思想与目前微服务架构Spring Cloud不谋而合。这是由于微服务到大规模集群的层次上,无论怎么拆,它终究会面临这些问题,例如熔断限流,负载均衡,流量调度,安全治理等。 

2013~2017年Dubbo疏于维护,而这是Spring Cloud蓬勃发展时期,逐渐成为世界级微服务框架,但从某种程度上来说,Dubbo可以称为Spring Cloud的前辈。 

 

 

五、Dubbo未来底层同步与异步架构 

image.png 

Dubbo从3.0版本开始,也在做服务高并发协议等方面的改造如云原生支持的改造,去支持底层的高并发高吞吐量,去对接K8s云原生的工具,协议层支持RPC等新的类型,从而让Dubbo整个通信协议更多样化,使用户在不同场景下可以选择不同的实践方式。 

异步请求和同步请求各有优势,异步请求优势在于非阻塞,同步请求的优势在于即时性,但如果是阻塞操作、长时间操作的话,可能会导致线程卡死的状况,影响整体的并发。 

Dubbo整个分布架构是更高层级的架构,它是大规模服务集群,不仅仅是开发落地,而且要大规模服务治理,它的实践经验给其他互联网公司的架构提供了很好的参考。 

 

 

六、Dubbo分布式架构与Remoting 

image.png 

Dubbo分布式架构的远程通讯(Remoting提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式 

相关文章
|
17天前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
阿里云容器服务ACK提供强大的产品能力,支持弹性、调度、可观测、成本治理和安全合规。针对拥有IDC或三方资源的企业,ACK One分布式云容器平台能够有效解决资源管理、多云多集群管理及边缘计算等挑战,实现云上云下统一管理,提升业务效率与稳定性。
|
24天前
|
机器学习/深度学习 存储 运维
分布式机器学习系统:设计原理、优化策略与实践经验
本文详细探讨了分布式机器学习系统的发展现状与挑战,重点分析了数据并行、模型并行等核心训练范式,以及参数服务器、优化器等关键组件的设计与实现。文章还深入讨论了混合精度训练、梯度累积、ZeRO优化器等高级特性,旨在提供一套全面的技术解决方案,以应对超大规模模型训练中的计算、存储及通信挑战。
57 4
|
27天前
|
NoSQL Java 数据处理
基于Redis海量数据场景分布式ID架构实践
【11月更文挑战第30天】在现代分布式系统中,生成全局唯一的ID是一个常见且重要的需求。在微服务架构中,各个服务可能需要生成唯一标识符,如用户ID、订单ID等。传统的自增ID已经无法满足在集群环境下保持唯一性的要求,而分布式ID解决方案能够确保即使在多个实例间也能生成全局唯一的标识符。本文将深入探讨如何利用Redis实现分布式ID生成,并通过Java语言展示多个示例,同时分析每个实践方案的优缺点。
61 8
|
3月前
|
运维 Kubernetes 调度
阿里云容器服务 ACK One 分布式云容器企业落地实践
3年前的云栖大会,我们发布分布式云容器平台ACK One,随着3年的发展,很高兴看到ACK One在混合云,分布式云领域帮助到越来越多的客户,今天给大家汇报下ACK One 3年来的发展演进,以及如何帮助客户解决分布式领域多云多集群管理的挑战。
阿里云容器服务 ACK One 分布式云容器企业落地实践
|
4月前
|
存储 分布式计算 Hadoop
【揭秘Hadoop背后的秘密!】HDFS读写流程大曝光:从理论到实践,带你深入了解Hadoop分布式文件系统!
【8月更文挑战第24天】Hadoop分布式文件系统(HDFS)是Hadoop生态系统的关键组件,专为大规模数据集提供高效率存储及访问。本文深入解析HDFS数据读写流程并附带示例代码。HDFS采用NameNode和DataNode架构,前者负责元数据管理,后者承担数据块存储任务。文章通过Java示例演示了如何利用Hadoop API实现数据的写入与读取,有助于理解HDFS的工作原理及其在大数据处理中的应用价值。
126 1
|
4月前
|
机器学习/深度学习 人工智能 负载均衡
【AI大模型】分布式训练:深入探索与实践优化
在人工智能的浩瀚宇宙中,AI大模型以其惊人的性能和广泛的应用前景,正引领着技术创新的浪潮。然而,随着模型参数的指数级增长,传统的单机训练方式已难以满足需求。分布式训练作为应对这一挑战的关键技术,正逐渐成为AI研发中的标配。
214 5
|
4月前
|
存储 Kubernetes 监控
深入浅出分布式事务:理论与实践
在数字化时代的浪潮中,分布式系统如同星辰大海般浩瀚而深邃。本文将带你航行于这片星辰大海,探索分布式事务的奥秘。我们将从事务的基本概念出发,逐步深入到分布式事务的核心机制,最后通过一个实战案例,让你亲自体验分布式事务的魅力。让我们一起揭开分布式事务的神秘面纱,领略其背后的科学与艺术。
98 1
|
4月前
|
Go API 数据库
[go 面试] 分布式事务框架选择与实践
[go 面试] 分布式事务框架选择与实践
|
4月前
|
UED 存储 数据管理
深度解析 Uno Platform 离线状态处理技巧:从网络检测到本地存储同步,全方位提升跨平台应用在无网环境下的用户体验与数据管理策略
【8月更文挑战第31天】处理离线状态下的用户体验是现代应用开发的关键。本文通过在线笔记应用案例,介绍如何使用 Uno Platform 优雅地应对离线状态。首先,利用 `NetworkInformation` 类检测网络状态;其次,使用 SQLite 实现离线存储;然后,在网络恢复时同步数据;最后,通过 UI 反馈提升用户体验。
115 0
|
4月前
|
机器学习/深度学习 TensorFlow 数据处理
分布式训练在TensorFlow中的全面应用指南:掌握多机多卡配置与实践技巧,让大规模数据集训练变得轻而易举,大幅提升模型训练效率与性能
【8月更文挑战第31天】本文详细介绍了如何在Tensorflow中实现多机多卡的分布式训练,涵盖环境配置、模型定义、数据处理及训练执行等关键环节。通过具体示例代码,展示了使用`MultiWorkerMirroredStrategy`进行分布式训练的过程,帮助读者更好地应对大规模数据集与复杂模型带来的挑战,提升训练效率。
116 0