Dubbo

Dubbo

  • 什么是Dubbo
  • 为什么要用Dubbo
  • 什么是分布式?
  • 为什么要分布式?

什么是Dubbo

Apache Dubbo是一款高性能、轻量级的开源Java RPC 框架,它提供了三大核心能力:

  • 面向接口的远程方法调用
  • 智能容错和负载均衡
  • 服务自动注册和发现
    简单来说Dubbo就是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。
    Dubbo 目前已经有接近30k的 Star ,Dubbo的Github 地址:https://github.com/apache/incubator-dubbo 。
    Dubbo 是由阿里开源,后来加入了 Apache 。正式由于 Dubbo 的出现,才使得越来越多的公司开始使用以及接受分布式架构。

为什么要用Dubbo

Dubbo的诞生和SOA分布式架构的流行有着莫大的关系。SOA 面向服务的架构(Service Oriented Architecture),也就是把工程按照业务逻辑拆分成服务层和表现层。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。
SOA架构中有两个主要角色:服务提供者(Provider)和服务使用者(Consumer)。
Dubbo_第1张图片
如果要开发分布式程序,也可以直接基于 HTTP 接口进行通信,那为什么要用Dubbo呢?
我认为主要可以从Dubbo提供的下面四点特性来说明:

  • 负载均衡——同一个服务部署在不同的机器时该调用那一台机器上的服务
  • 服务调用链路生成——随着系统的发展,服务越来越多,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。Dubbo可以为我们解决服务之间互相是如何调用的
  • 服务访问压力以及时长统计、资源调度和治理——基于访问压力实时管理集群容量,提高集群利用率
  • 服务降级——某个服务挂掉之后调用备用服务

另外,Dubbo 除了能够应用在分布式系统中,也可以应用在现在比较火的微服务系统中。不过,由于Spring Cloud在微服务中应用更加广泛,所以,一般我们提 Dubbo 的话,大部分是分布式系统的情况。

我们刚刚提到了分布式这个概念,下面再给大家介绍一下什么是分布式?为什么要分布式?

什么是分布式?

分布式重要的就是面向服务,或者说简单的分布式就是我们把整个系统拆分成不同的服务然后将这些服务放在不同的服务器上减轻单体服务的压力提高并发量和性能。比如电商系统可以简单地拆分成订单系统、商品系统、登录系统等等,拆分之后的每个服务可以部署在不同的机器上,如果某一个服务的访问量比较大的话也可以将这个服务同时部署在多台机器上。

为什么要分布式?

从开发角度来讲单体应用的代码都集中在一起,而分布式系统的代码根据业务被拆分。所以,每个团队可以负责一个服务的开发,这样提升了开发效率。
此外,代码根据业务拆分之后更加便于维护和扩展。
还有,将系统拆分成分布式之后不光便于系统扩展和维护,更能提高整个系统的性能。

你可能感兴趣的:(Dubbo)