dubbo的学习总结

1.什么是dubbo

dubbo是一个分布式服务架构,致力于提供高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。

分布式服务架构RPC:应用之间产生交互,将核心业务抽取出来,作为独立的服务,逐渐形成稳定的服务中心,使前端应用能够快速的响应多变的市场需求。

流动计算架构:当服务越来越多,容量的评估,资源的浪费等问题显现,此时增加一个调度中心基于访问压力实时管理集群容量,提高集群的利用率,即资源调度和治理中心SOA

dubbo就是资源调度和治理中心的管理工具。

dubbo是系统之间通信的框架,可以统计和管理服务之间的调用情况。包括服务被谁调用了,调用的次数,以及服务的使用情况。

此外:dubbo还可以实现软负载均衡。


2.dubbo的架构

dubbo的学习总结_第1张图片

角色节点说明

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

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

 Register:注册中心    --这里就是zookeeper

 Monitor:监控中心

 Container:服务运行容器

调用关系说明

0.服务运行容器,负责启动,加载,运行服务提供者。

1.服务提供者向注册中心注册自己提供的服务

2.服务消费者在启动时,向注册中心订阅自己所需的服务

3.注册中心返回服务提供者地址列表给消费者,若有变更,推送变更

4.******服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用

   invoke

5.服务者和消费者,定时发送数据到监控中心

在实际调用过程中,Provider的位置对于Consumer来说是透明的,上一次调用服务的位置(IP地址)和下一次调用服务的位置,是不确定的。这个地方就是实现了软负载。

 

3.dubbo的使用

采用全spring配置方式

对比:

(1)单一工程中spring的配置
    
    
        
    

action层直接引入service

(2)远程服务

将服务定义部分放在服务提供方 provide.xml

将服务引用部分放在服务消费方consumer.xml

在提供方增加暴露服务配置,在消费方增加引用服务配置

服务层发布服务:(提供者)



interface="com.xxx.XxxService" ref="xxxService" />

表现层调用服务:(消费者)

interface="com.xxx.XxxService" />


   

理解为二者通过标绿部分找到。

逻辑关系仔细理清一下!!!


提供者

   
   
   
   
   
   
   
   

消费者

    
   
        
     

思考:为什么ref="testServiceImpl"可以没有指明呢?

 

 

 

 

 

 

 

 

 

 

你可能感兴趣的:(dubbo的学习总结)