了解阿里“dubbo”服务框架

转载 2018年04月15日 23:44:23

“分布式架构”:后来我按照功能点把系统拆分,拆分成独立的功能。单独为某一个节点添加服务器。通过系统之间配合完成整个业务逻辑。但是随着我的网站功能的日益完善,我发现各个模块有一些通用的业务逻辑无法共用,这样可不好,这时候我就在考虑为啥部直接来个面向服务呢???

“面向服务架构”:我把工程拆分成服务层、表现层两个工程。服务层中包含业务逻辑,只需要对外提供服务即可。表现层只需要处理和页面的交互,业务逻辑都是调用服务层的服务来实现。这样我的网站不光开发效率快,而且在扩展和升级相关服务的时候更加灵活。
这里写图片描述

Dubbo是 阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。
RPC(Remote Procedure Call)—远程过程调用,它是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。RPC协议假定某些传输协议的存在,如TCP或UDP,为通信程序之间携带信息数据。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
RPC采用客户机/服务器模式。请求程序就是一个客户机,而服务提供程序就是一个服务器。首先,客户机调用进程发送一个有进程参数的调用信息到服务进程,然后等待应答信息。在服务器端,进程保持睡眠状态直到调用信息到达为止。当一个调用信息到达,服务器获得进程参数,计算结果,发送答复信息,然后等待下一个调用信息,最后,客户端调用进程接收答复信息,获得进程结果,然后调用执行继续进行
这里写图片描述
Dubbo框架设计一共划分了10个层,而最上面的Service层是留给实际想要使用Dubbo开发分布式服务的开发者实现业务逻辑的接口层。图中左边淡蓝背景的为服务消费方使用的接口,右边淡绿色背景的为服务提供方使用的接口, 位于中轴线上的为双方都用到的接口。
下面,结合Dubbo官方文档,我们分别理解一下框架分层架构中,各个层次的设计要点:

1.服务接口层(Service):该层是与实际业务逻辑相关的,根据服务提供方和服务消费方的业务设计对应的接口和实现。

2.配置层(Config):对外配置接口,以ServiceConfig和ReferenceConfig为中心,可以直接new配置类,也可以通过spring解析配置生成配置类。

3.服务代理层(Proxy):服务接口透明代理,生成服务的客户端Stub和服务器端Skeleton,以ServiceProxy为中心,扩展接口为ProxyFactory。

4**.服务注册层(Registry)**:封装服务地址的注册与发现,以服务URL为中心,扩展接口为RegistryFactory、Registry和RegistryService。可能没有服务注册中心,此时服务提供方直接暴露服务。

5.集群层(Cluster):封装多个提供者的路由及负载均衡,并桥接注册中心,以Invoker为中心,扩展接口为Cluster、Directory、Router和LoadBalance。将多个服务提供方组合为一个服务提供方,实现对服务消费方来透明,只需要与一个服务提供方进行交互。

6.监控层(Monitor):RPC调用次数和调用时间监控,以Statistics为中心,扩展接口为MonitorFactory、Monitor和MonitorService。

7.远程调用层(Protocol):封将RPC调用,以Invocation和Result为中心,扩展接口为Protocol、Invoker和Exporter。Protocol是服务域,它是Invoker暴露和引用的主功能入口,它负责Invoker的生命周期管理。Invoker是实体域,它是Dubbo的核心模型,其它模型都向它靠扰,或转换成它,它代表一个可执行体,可向它发起invoke调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。

8.信息交换层(Exchange):封装请求响应模式,同步转异步,以Request和Response为中心,扩展接口为Exchanger、ExchangeChannel、ExchangeClient和ExchangeServer。

9.网络传输层(Transport):抽象mina和netty为统一接口,以Message为中心,扩展接口为Channel、Transporter、Client、Server和Codec。

10.数据序列化层(Serialize):可复用的一些工具,扩展接口为Serialization、 ObjectInput、ObjectOutput和ThreadPool。
链接1
链接2

阿里巴巴分布式服务框架Dubbo介绍

引言 互联网服务和BS架构的传统企业软件相比,系统规模上产生了量级的差距。例如 传统BS企业内部门户只需要考虑数百人以及几千人的访问压力,而大型互联网服务有时需要考虑的是千万甚至上亿的用户;传...
  • liuyiming0822
  • liuyiming0822
  • 2017-06-14 16:50:27
  • 355

分布式服务框架--Dubbo

Dubbo 框架 一、Dubbo 框架介绍 1. Dubbo框架是什么? Dubbo框架是一个分布式服务框架,致力于提供高性能和透明化的 RPC 远程服务调用方案,是阿里巴巴 SOA 服务化治理方...
  • followMyInclinations
  • followMyInclinations
  • 2016-08-30 16:08:37
  • 2122

Dubbo分布式服务框架入门(附工程)

本文介绍了dubbo的一些概念,并对zookeeper、dubbo-admin、提供者、消费者的搭建进行了详细的讲解,且附有工程源码...
  • u013142781
  • u013142781
  • 2015-12-23 15:49:18
  • 29628

"阿里巴巴分布式服务框架 Dubbo

Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo自2011年开源后,...
  • asdz1989253jm
  • asdz1989253jm
  • 2015-07-22 17:36:13
  • 665

Dubbo阿里Alibaba开源的分布式服务框架

Dubbo是什么? Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。 Dubbo是一个...
  • XingKong22star
  • XingKong22star
  • 2015-11-06 16:19:43
  • 2293

高性能分布式服务框架Dubbo背景与需求

背景 (#) 随着互联网的发展,网站应用的规模不断扩大,常规的垂直应用架构已无法应对,分布式服务架构以及流动计算架构势在必行,亟需一个治理系统确保架构有条不紊的演进。 单一应用架构 当网...
  • jiq408694711
  • jiq408694711
  • 2014-02-26 08:57:48
  • 1450

开源分布式服务框架Dubbo调研报告

  • 2017年11月02日 15:19
  • 1.89MB
  • 下载

Dubbo分布式服务框架入门实战(附源码)

Dubbo分布式服务框架入门实战首先,有必要清楚Dubbo是什么。官方文档的定义如下: DUBBO是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,是阿里巴巴SOA服务化治理...
  • u011116672
  • u011116672
  • 2016-08-05 17:49:32
  • 5508

Dubbo分布式服务框架视频教程(18G)

  • 2017年12月24日 00:28
  • 49B
  • 下载
收藏助手
不良信息举报
您举报文章:了解阿里“dubbo”服务框架
举报原因:
原因补充:

(最多只允许输入30个字)