Dubbo 配置

原文链接: https://blog.csdn.net/liyintaoliuyun/article/details/80066269
  1. 概述

Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。主要核心部件
Remoting: 网络通信框架,实现了sync-over-async 和 request-response 消息机制.
RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能
Registry: 服务目录框架用于服务的注册和服务事件发布和订阅。
Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需用Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

dubbo架构图如下所示:

Dubbo 配置_第1张图片

节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务运行容器。

调用关系说明:
服务容器负责启动,加载,运行服务提供者。

  1. 服务提供者在启动时,向注册中心注册自己提供的服务。
  2. 服务消费者在启动时,向注册中心订阅自己所需的服务。
  3. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
  4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  5. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

Dubbo的一些属性:

 服务配置,用于暴露一个服务,定义服务的元信息,一个服务可以用多个协议暴露,一个服务也可以注册到多个注册中心。
eg、

 引用服务配置,用于创建一个远程服务代理,一个引用可以指向多个注册中心。
eg、

 协议配置,用于配置提供服务的协议信息,协议由提供方指定,消费方被动接受。
eg、

 应用配置,用于配置当前应用信息,不管该应用是提供者还是消费者。
eg、
    

 模块配置,用于配置当前模块信息,可选。
 注册中心配置,用于配置连接注册中心相关信息。
eg、

 监控中心配置,用于配置连接监控中心相关信息,可选。
 提供方的缺省值,当ProtocolConfig和ServiceConfig某属性没有配置时,采用此缺省值,可选。
 消费方缺省配置,当ReferenceConfig某属性没有配置时,采用此缺省值,可选。
 方法配置,用于ServiceConfig和ReferenceConfig指定方法级的配置信息。
 用于指定方法参数配置。

注意:

服务端客户端的区分

服务端:dubbo:service


客户端:dubbo:reference



流程:服务端提供接口供客户端调用。理论上是服务端提供的接口外人是不知道的,也不知道项目的真实架构流程。

一般分为三步:1.服务端提供接口,一般部署在自己的内网。2、对外网暴漏在外的客户端接口,供别的项目调用接口。中间涉及到了黑白名单。不细说(我也没学会呢。)

服务端代码:

1、config.properties配置文件(包含数据库的,zk的,redis的等等一些配置信息)。
2、applicationContext.xml spring 配置文件,加载了配置文件。如


3、applicationContext_dubbo_main_server.xml Dubbo服务端提供的配置文件以及接口:

    
    
    
       


       
       
       
       
         
       

   
   
   
   
         
            

   
    

   
    
      

客户端代码:

1、config.properties,一些属性的配置文件信息

2、spring-context.xml spring的配置文件信息,里面加载了config.properties配置文件。

 

3、spring-context-dubbo-client.xml Dubbo 的客户端配置文件:



       
    
   
   
   
   
   
   
   
   
     
      
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   
   

4、注意:我接口中虽然提供了消息推送的接口。但是dubbo没有消息推送的功能。都是自己写的接口,然后根据业务来实现的。你可以接口消息中间件之类的实现。

5、黑白名单可以参考文档。比如:连接
————————————————
版权声明:本文为CSDN博主「Rose逆水行舟」的原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/liyintaoliuyun/article/details/80066269

你可能感兴趣的:(Dubbo)