开发者学堂课程干货总结——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框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式 

相关文章
|
2天前
|
NoSQL 关系型数据库 MySQL
分布式锁:不同实现方式实践测评
分布式锁:不同实现方式实践测评
29 0
|
7月前
|
SQL 安全 关系型数据库
Seata 解决分布式事务理论与实践(2)
Seata 解决分布式事务理论与实践(2)
Seata 解决分布式事务理论与实践(2)
|
7月前
|
数据库 Nacos 微服务
Seata 解决分布式事务理论与实践(1)
Seata 解决分布式事务理论与实践(1)
|
2天前
|
负载均衡 监控 Dubbo
Java微服务架构设计与实践:构建可伸缩的分布式系统
【4月更文挑战第2天】微服务架构响应现代业务需求,通过拆分大型应用为独立服务实现模块化和可扩展性。Java中的Spring Boot和Dubbo等框架支持服务注册、负载均衡等功能。遵循单一职责、自治性和面向接口原则,每个服务专注特定逻辑,独立部署运行。实际项目中,如电商系统,服务按功能拆分,提升可维护性和扩展性。还需考虑服务通信、数据一致性和监控等复杂话题。Java微服务架构助力构建高效、灵活的应用,应对未来挑战。
Java微服务架构设计与实践:构建可伸缩的分布式系统
|
2天前
|
存储 Java 分布式数据库
【分布式计算框架】HBase数据库编程实践
【分布式计算框架】HBase数据库编程实践
12 1
|
2天前
|
分布式计算 并行计算 Java
【分布式计算框架】 MapReduce编程初级实践
【分布式计算框架】 MapReduce编程初级实践
9 2
|
2天前
|
分布式计算 数据可视化 Hadoop
【分布式计算框架】HDFS常用操作及编程实践
【分布式计算框架】HDFS常用操作及编程实践
6 1
|
2天前
|
存储 大数据 Apache
深入理解ZooKeeper:分布式协调服务的核心与实践
【5月更文挑战第7天】ZooKeeper是Apache的分布式协调服务,确保大规模分布式系统中的数据一致性与高可用性。其特点包括强一致性、高可用性、可靠性、顺序性和实时性。使用ZooKeeper涉及安装配置、启动服务、客户端连接及执行操作。实际应用中,面临性能瓶颈、不可伸缩性和单点故障等问题,可通过水平扩展、集成其他服务和多集群备份来解决。理解ZooKeeper原理和实践,有助于构建高效分布式系统。
|
2天前
|
缓存 分布式计算 负载均衡
Java分布式系统设计与实践
Java分布式系统设计与实践
17 0
|
2天前
|
分布式计算 并行计算 数据处理
NumPy的并行与分布式计算实践
【4月更文挑战第17天】本文探讨了如何使用NumPy进行并行和分布式计算以提升效率。介绍了利用`numexpr`加速多核CPU计算,设置`NUMPY_NUM_THREADS`环境变量实现多线程,并通过Dask和PySpark进行分布式计算。Dask允许无缝集成NumPy,而PySpark则将NumPy数组转换为RDD进行并行处理。这些方法对处理大规模数据至关重要。