首页 > 代码库 > Dubbo介绍

Dubbo介绍

1.Dubbo是什么?

  (1).Dubbo是Alibaba开源的一个分布式服务框架(远程服务调用的分布式框架)

  (2).高性能和透明化的RPC远程服务调用方案

  (3).SOA服务治理方案

2.Dubbo能做什么?

  (1).透明化的远程方法调用

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

  (2).软负载均衡及容错机制

    可在内网替代F5等硬件负载均衡器

  (3).服务自动注册与发现

    不在需要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,并且能够平滑或删除服务提供者

3.Dubbo的基本原理

   技术分享

  Provider:暴露服务的服务提供方

  Consumer:调用远程服务的服务消费方

  Registry:服务注册与发现服务中心

  Monitor:统计服务的调用次数和调用时间的监控中心

  Container:服务运行容器

   基本流程:

  (1).服务提供方发布服务到服务注册中心

  (2).服务消费方从服务注册中心订阅服务

  (3).服务消费方调用已经注册的可用服务

 4.Dubbo的基本功能 (配置)

  (1).基本功能-可编程配置-暴露服务

    技术分享

    application:指的是当前应用的名称主要用来给注册中心计算应用间依赖关系

        registry:用来声明一个注册中心,id为registry的注册中心,地址是本地服务器的2181端口  

       protocol:指该应用用Dubbo协议在28080端口暴露服务,其他应用可以通过这个借口调用服务

         service:用来声明需要暴露的服务接口,并将接口注册到id为dubbodemo的注册中心,引用了spring中名为userService的类,超时时间为3秒 

  (2).基本功能-可编程配置-引用服务

    技术分享

     注:reference里面引用的接口interface是跟服务方一样的,id是要引用的接口

  (3).基本功能-服务分组

    当一个接口有多种实现时,可以用group区分

      技术分享

 

      技术分享

    当一个接口实现,出现不兼容升级时,可以用版本号过滤,版本号不同的服务相互间不引用

      技术分享

      技术分享

  (4).基本功能-多协议

    数据序列化格式

    技术分享

    传输数据协议

    技术分享

    不同服务,不同协议

      比如:不同服务在性能上适用不同协议进行传输,比如大数据用短连接协议,小数据用长连接协议

      技术分享

    同意服务,多协议暴露

      比如:需要与http客户端互操作

      技术分享

 5.Dubbo高级功能-并发控制

  actives:Consumer并发数限制

  excutes:Provider并发数上限

  connections:consumer的连接数

  accepts:Provider的连接上限,短链接是连接上限,长连接是启用的连接数

  LeastActive LoadBalance:调用并发数量最小分Provider(从Consumer端并发),调节Provider间并发

 

资源:

  • 源码:https://github.com/alibaba/dubbo
  • 下载:http://repo1.maven.org/maven2/com/alibaba/dubbo

 

Dubbo介绍