Dubbo使用

Dubbo中文文档地址

https://dubbo.gitbooks.io/dubbo-user-book/content/

Dubbo背景

image.png
  • 单一应用架构
    当网站流量很小时,只需一个应用,将所有功能都部署在一起,以减少部署节点和成本。
    此时,用于简化增删改查工作量的 数据访问框架(ORM) 是关键。
  • 垂直应用架构
    当访问量逐渐增大,单一应用增加机器带来的加速度越来越小,将应用拆成互不相干的几个应用,以提升效 率。此时,用于加速前端页面开发的 Web框架(MVC) 是关键。
  • 分布式应用架构
    当垂直应用越来越多,应用之间交互不可避免,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务 中心,使前端应用能更快速的响应多变的市场需求。此时,用于提高业务复用及整合的 分布式服务框架(RPC)是关键。
  • 流动计算架构
    当服务越来越多,容量的评估,小服务资源的浪费等问题逐渐显现,此时需增加一个调度中心基于访问压力实时管理集群容量,提高集群利用率。此时,用于提高机器利用率的 资源调度和治理中心(SOA) 是关键。

Dubbo

Dubbo快速搭建(结合SpringBoot):http://start.dubbo.io/,快速生成消费者和提供者项目

  • 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
  • 引用配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
  • 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
  • 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
  • 模块配置,用于配置当前模块信息,可选。
  • 注册中心配置,用于配置连接注册中心相关信息。
  • 监控中心配置,用于配置连接监控中心相关信息,可选。
  • 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
  • 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
  • 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
  • 用于指定方法参数配置。

Dubbo的Pom文件配置

        
        
            org.jboss.netty
            netty
        
        
            com.alibaba
            dubbo
            
                
                    org.springframework
                    spring
                
            
        
        
            org.apache.zookeeper
            zookeeper
        
        
            com.101tec
            zkclient
        
        

Dubbo基本使用

服务提供者和消费者都需要引入公用接口相关的jar包

服务提供者

     
    

    

    
    
    
    
    

    
    

    
    

服务消费者

     
    

    
    
    

    
    

    
    

配置重试次数,最好只用于读的重试,写操作可能会引起多次写入 下面三个任意一个配置就行 默认retries="0"



注册中心

image.png

流程:
1.服务提供者启动时向/dubbo/com.foo.BarService/providers目录下写入URL
2.服务消费者启动时订阅/dubbo/com.foo.BarService/providers目录下的URL向/dubbo/com.foo.BarService/consumers目录下写入自己的URL
3.监控中心启动时订阅/dubbo/com.foo.BarService目录下的所有提供者和消费者URL

Dubbo负载均衡

  1. Random LoadBalance
    随机,按权重设置随机概率。
    在一个截面上碰撞的概率高,但调用量越大分布越均匀,而且按概率使用权重后也比较均匀,有利于动态调整提供者权重。
  2. RoundRobin LoadBalance
    轮循,按公约后的权重设置轮循比率。
    存在慢的提供者累积请求问题,比如:第二台机器很慢,但没挂,当请求调到第二台时就卡在那,久而久之,所有请求都卡在调到第二台上。
  3. LeastActive LoadBalance
    最少活跃调用数,相同活跃数的随机,活跃数指调用前后计数差。
    使慢的提供者收到更少请求,因为越慢的提供者的调用前后计数差会越大。
  4. ConsistentHash LoadBalance
    一致性Hash,相同参数的请求总是发到同一提供者。
    当某一台提供者挂时,原本发往该提供者的请求,基于虚拟节点,平摊到其它提供者,不会引起剧烈变动。算法参见:http://en.wikipedia.org/wiki/Consistent_hashing。
    缺省只对第一个参数Hash,如果要修改,请配置
    缺省用160份虚拟节点,如果要修改,请配置





    



    

Dubbo多协议配置

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

    
   
   

   
   
   
   
   
   

Dubbo多注册中心

     
    
    

    
    

一个接口多种实现时


  
  
  
  
  
  
  

多版本

当一个接口实现,出现不兼容升级时,可以用版本号过渡,版本号不同的服务相互间不引用。
在低压力时间段,先升级一半提供者为新版本
再将所有消费者升级为新版本
然后将剩下的一半提供者升级为新版本

  
  

  
  

你可能感兴趣的:(Dubbo使用)