1. 首页
  2. 程序人生

从Dubbo和Spring Cloud来看分布式和微服务

程序员

垂直系统、集群、分布式、微服务。。。随着互联网技术的发展,这些技术名词便出现在我们的日常开发架构中,而最热门的莫过于微服务,它提倡将单一应用程序按照业务方向划分成一组组的服务,服务之间互相协调、互相配合,为用户提供最终价值。之前做分布式开发,用到最多的就是Dubbo,这是阿里开源的;还有就是当当开源的Dubbox,就是基于Dubbo扩展的,因为有段时间阿里没有去维护Dubbo。提到微服务,大伙首先想到的就是Spring Cloud,配合一站式开发工具Spring Boot,也是在微服务领域独领风骚。
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
分布式和微服务都是拆分服务,细化服务,首先来说一下这些拆分服务的优势:
1、解决系统臃肿,降低复杂度:
对于项目来说,将原来耦合在一起的复杂业务拆分为单个服务,使得每一个微服务专注于单一功能,并通过定义良好的接口清晰表述服务边界,解决了越来越多的代码造成的系统臃肿。对于开发者来讲,只需专注自己负责的业务模块,无需分心于其他业务模块,也不会产生那种集中式开发提交代码不完全带来的问题,然后通过使用缓存、DAL 等各种技术手段来提升系统的性能,而对于消费方来说完全透明。
2、独立部署
由于微服务具备独立的运行进程,所以每个微服务可以独立部署。当业务迭代时只需要发布相关服务的迭代即可,降低了测试的工作量同时也降低了服务发布的风险。
3、容错
在微服务架构下,当某一组件发生故障时,故障会被隔离在单个服务中。 通过限流、熔断等方式降低错误导致的危害,保障核心业务正常运行。
4、扩展
单一架构应用也可以实现横向扩展,就是将整个应用完整的复制到不同的节点。当应用的不同组件在扩展需求上存在差异时,微服务架构便体现出其灵活性,因为每个服务可以根据实际需求独立进行扩展。
作为分布式系统的代表,我们来看一看Dubbo的定义:
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
从官网可以看出,它定义为:一款高性能Java RPC框架,RPC就是远程过程调用,也就是系统与系统之间的服务调用,这也就说明了分布式是一个大的系统分拆多个子系统,部署在不同的服务器上,然后子系统与子系统之间通过一定的协议进行调用。
然后来看一下微服务的代表Spring Cloud的介绍:
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
从上面介绍可以看出,Spring Cloud为开发人员提供了工具,以快速构建分布式系统中的某些常见模式(例如,配置管理,服务发现,断路器,智能路由,微代理,控制总线,一次性令牌,全局锁,领导选举,分布式会话,集群状态)。我们常称它为微服务架构,不过它自己定义为可快速构建分布式系统,这样看来,微服务是属于分布式系统的一种细化架构,而分布式属于系统级别的,可能会是一个或者多个服务构成的系统。
二者的架构如下:
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
从Dubbo和Spring Cloud来看分布式和微服务

从Dubbo和Spring Cloud来看分布式和微服务
从整体架构上来看,二者架构模式很接近,都需要服务提供方、服务消费方和注册中心。
二者的核心组成如下:
1、对于服务注册中心:Dubbo常用zookeeper,Spring cloud使用自己的Eureka;
2、服务调用方式:Dubbo使用RPC,Spring cloud使用REST API;
3、服务网关:Dubbo没有提供,Spring cloud提供了zuul;
4、断路器:Dubbo还不完善,Spring cloud提供了Hystrix;
5、分布式配置:Dubbo没有,Spring cloud提供了config;
6、分布式追踪系统:Dubbo没有,Spring cloud提供了sleuth;
7、消息总线:Dubbo没有,Spring cloud提供了bus;
8、数据流:Dubbo没有,Spring cloud提供了Stream;
9、批量任务:Dubbo没有,Spring cloud提供了Task;
从上面可以看出,Dubbo 只是实现了服务治理,而 Spring Cloud 子项目分别覆盖了微服务架构下的众多部件,而服务治理只是其中的一个方面。
对于项目中是使用Dubbo,还是Spring Cloud,可根据公司的业务划分来进行架构需要。记得一个码友说过,对他来讲,就要使用Spring Cloud,我问为什么,他只说了一句:因为Dubbo是国产的。卧槽,无情呀!虽然Dubbo在之前一段时间,停止过维护,不过现在已经成为Apache的一个顶级项目,作为国产开源,也是让国人自豪了一把,希望Dubbo越来越好,希望国产开源越来越好!
从Dubbo和Spring Cloud来看分布式和微服务

本文来自投稿,不代表程序员编程网立场,如若转载,请注明出处:http://www.cxybcw.com/27844.html

联系我们

13687733322

在线咨询:点击这里给我发消息

邮件:1877088071@qq.com

工作时间:周一至周五,9:30-18:30,节假日休息

QR code