zoukankan      html  css  js  c++  java
  • Dubbo入门简介(一)

    Dubbo入门简介(一)

    一、什么是Dubbo

    Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。通过扩展spring schema 和 注解标签,可以和spring无缝集成(http://blog.csdn.net/achilles12345/article/details/41789527

    核心组件:

    Remoting:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交换方式。

    RPC:一个远程过程调用的抽象,支持多协议,支持软负载均衡,失败容错,地址路由,动态配置等集群。

    Registry:注册中心目录,用于服务的注册和服务事件发布与订阅。

    Dubbo模块及其关系,如图所示:

     

    可以通过Dubbo的代码(使用Maven管理)组织,与上面的模块进行比较。简单说明各个包的情况:

    dubbo-common 公共逻辑模块,包括Util类和通用模型。

    dubbo-remoting 远程通讯模块,相当于Dubbo协议的实现,如果RPC用RMI协议则不需要使用此包。

    dubbo-rpc 远程调用模块,抽象各种协议,以及动态代理,只包含一对一的调用,不关心集群的管理。

    dubbo-cluster 集群模块,将多个服务提供方伪装为一个提供方,包括:负载均衡、容错、路由等,集群的地址列表可以是静态配置的,也可以是由注册中心下发。

    dubbo-registry 注册中心模块,基于注册中心下发地址的集群方式,以及对各种注册中心的抽象。

    dubbo-monitor 监控模块,统计服务调用次数,调用时间的,调用链跟踪的服务。

    dubbo-config 配置模块,是Dubbo对外的API,用户通过Config使用Dubbo,隐藏Dubbo所有细节。

    dubbo-container 容器模块,是一个Standalone的容器,以简单的Main加载Spring启动,因为服务通常不需要Tomcat/JBoss等Web容器的特性,没必要用Web容器去加载服务。

    二、工作原理

     

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

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

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

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

    Container: 服务运行容器。

    执行流程

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

    服务提供者在启动时,向注册中心注册自己提供的服务。

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

    注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。

    服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。

    服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。

  • 相关阅读:
    关于 implicit declaration of function Which should not record for myself
    Silverlight Tools 正式版发布附下载地址(11月25日更新 for Silverlight 2 RTW)
    WPF里的DependencyProperty(4)
    Silverlight支持XPS
    我们为什么要选择 Silverlight[转]
    分享silverlight源代码与实例
    Silverlight 中的 CoreCLR
    Flash读取cookie[转]
    Expression Studio 2.0和Blend2下载地址
    Flash读写cookie
  • 原文地址:https://www.cnblogs.com/belen/p/4802518.html
Copyright © 2011-2022 走看看