dubbo

简介

官网:http://dubbo.io/

源码下载:https://github.com/alibaba/dubbo

发布包下载:http://repo1.maven.org/maven2/com/alibaba/dubbo/

DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。

Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合)。从服务模型的角度来看,Dubbo采用的是一种非常简单的模型,要么是提供方提供服务,要么是消费方消费服务,所以基于这一点可以抽象出服务提供方(Provider)和服务消费方(Consumer)两个角色。关于注册中心、协议支持、服务监控等内容。

Dubbo服务集群容错

假设我们使用的是单机模式的Dubbo服务,如果在服务提供方(Provider)发布服务以后,服务消费方(Consumer)发出一次调用请求,恰好这次由于网络问题调用失败,那么我们可以配置服务消费方重试策略,可能消费方第二次重试调用是成功的(重试策略只需要配置即可,重试过程是透明的);但是,如果服务提供方发布服务所在的节点发生故障,那么消费方再怎么重试调用都是失败的,所以我们需要采用集群容错模式,这样如果单个服务节点因故障无法提供服务,还可以根据配置的集群容错模式,调用其他可用的服务节点,这就提高了服务的可用性。

什么是服务框架?

服务框架就是提供服务的,服务框架是基于业务对应SaaS分发模式的服务进行整合,以产生新的应用。服务框架中,与业务相关,但与业务功能的整合无关的组件以外部服务形式引入(也就是说把一些业务分离出来,变成一种服务,供其他人调用该服务)。

什么是RPC?

RPC全拼是(Remote Procedure

CallProtocol)远程过程调用协议,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。(理解:远程调用协议,为Dubbo实现远程接口调用做支持)

Dubbo能做什么?

1、透明化的远程方法调用,就像调用本地方昂发一样调用远程方法,只需要简单配置,没有任何API侵入。

2、 软负载均衡及容错机制,可以在内网替代F5等硬件负载均衡器,降低成本,减少单点。

3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提供者的ip地址,并且能够平滑添加或删除服务提供者。

(理解:可以这样理解,在饭店中点菜需要消费者和服务人员,服务员使用点菜宝点菜的时候,饭店老板提前把自己的菜品相关信息注册到点菜宝中,这样服务员可以通过点菜宝给消费者点菜,当增加新的菜品的时候,会在点菜宝中注册新的菜品信息,当然顾客就可以选择这个菜品了。dubbo就是类似这样的原理,通过dubbo可以让公司内网之间的View层调用不同项目的service)

和非面向服务的项目比较

之前为解决高并发问题的时候,我们可能会做针对应用级别的负载均衡,部署的时候做tomcat集群。而面向服务,在我看来是,细粒度的把项目逻辑层分割开来,把针对saas层公共的逻辑提取出来,供view层调用。我们可以根据业务逻辑方面,把不同的业务逻辑点分离出来,并部署到不同的服务器上,也就是把service层部署到不同的服务器上,可以供其他view层调用。(自我理解)

你可能感兴趣的:(dubbo)