Dubbo分布式框架(阿里开源)

分布式开发

分布式开发的本质就在于:虽然所有的主机物理上分布了,但是对于用户而言就仿佛是一个整体。

于我们的Java开发人员而言,那么分布式开发的意义是什么呢?也就是说那里需要去使用分布式开发?

在任何一个项目里面(MVC设计模式),业务操作是最为核心的部分,而所有项目之中你的业务操作是否完整直接决定了你的项目本身是否健壮。

最初开发结构是使用单台服务器完成,这样就造成了一个问题:所有的业务的接口以及所有的实现类都写了在一台服务器之

中,那么这台服务器除了要进行显示的处理之外,还需要处理大量的业务操作,所以这台服务器往往要求性能很高,但是即便你再

高性能的服务器,如果面对与大用户的访问处理操作,那么你依然无所适从。

那么随着开发技术的不断发展,人们开始越来越多的发现如果将业务层直接和前端的开发混合在一起,那么将无法进行业务

的重用操作,这样会带来非常麻烦的业务重复开发问题,所以开始将业务的操作单独剥离出来,让业务单独运行在一台服务器上,

这样就可以组成一个业务的服务器集群,那么这样的集群也可以将其称为业务中心。

然而不管RPC技术如何进行处理操作,所有进行远程端服务的接口,必须要提供有远程对象才可以供前端开发者进行调用。

当这些业务中心组成完成之后,实际上也就出现了一个数据库的集群,也就是说庞大的项目开发里面,每一个业务中心应该有自己的数据库服务器供用户使用,正是因为如此,所以在很多的大型项目设计里面,对于数据库之中的约束大部分情况下往往都只会使用主键约束,而其他的所有约束都会通过业务层进行控制。对于每一个业务层后面所使用的数据库,你也可以继续进行架构设计,例如:进行库表的分离设计,或者直接使用MyCat进行分片处理。

传统分布式开发技术

如果要想说最早的分布式开发技术(分布式技术的鼻祖,是属于所有语言都可以实现的技术)就是CORBA,而在CORBA之后由SUN公司发布了一项属于自己的分布式开发技术:RMI(这个技术性能差,但是这个技术的实现形式和Dubbo是最相似的)。

在RMI的处理里面,有两个非常重要的概念,那么就是存根与骨架,可以简单的理解为,RMI技术依然借助于接口定义完成,客户端用户接口定义形式(远程方法视图),客户端通过这个远程接口就可以知道所有可以使用的方法有那些。后来随着JDK版本的不断的提升,那么服务端的骨架会自动的进行生成处理。不过由于RMI技术使用非常的小众,所以并没有发展起来,后来经过不断的技术的创新,在RMI基础之后,又结合了CORBA ,形成了后来的EJB技术,而在EJB技术里面真正提出了业务中心的概念,也就是说结合会话Bean与实体Bean进行业务中心的定义,不过由于整个的EJB的设计体系过于庞大,就导致EJB技术的技术成本很高,所以不得不放弃(SSH框架开发阶段)。

但是在整个的行业之中对于分布式开发的需求实际上是一直存在的,尤其是到了后来net大力发展的时代,很多的开发者为了融合J2EE与.net体系的完美对接,后来推出了WebService技术。

WebService的好处是使用了XML作为数据交换,可以整合所有的技术平台。但是缺点:慢,非常慢的执行。

WebService在进行处理的时候往往会结合一些WEB容器去实现。而要知道给出的XFire等开发框架是一个不断发展的过程。现在依然有许多的开发公司使用了CXF

开发技术进行开发,并且CXF后续有了一个jersey(Rest架构)。

后来在WebService上继续进行了技术的革新,产生了一个SOA的概念,而后又同时出现了ESB的概念,整合所有的应用。不过这个SOA概念炒作了几年之后,也就很少听见了。那么再随后的技术发展就发展到了现在经常听见Restful架构,利用JSON或XML实现数据的交换处理,这样的好处是可以更多的避免WebService

所带来的性能问题,在很多的开源项目里面被大量的采用。

但是综合以上的许多点会发现实际上不管这些分布式的技术如何发展,那么总体而言有两种形式:

·

基于远程接口的实现技术:RMI、EJB、Dubbo;·

基于平台的交换技术(基于XML、JSON):WebService、Rest架构。

Dubbo简介

Dubbo在整体的实现风格上与Java传统的RMI、EJB技术都是非常相似,在整个的开发处理之中依然是以接口(远程接口)为主进行服务提供的。

对于Dubbo本身开发架构来讲:开发人员可以说所需要做的处理是非常有限的,而Dubbo开发框架会帮助用户进行一系列的配置处理。同时在整个的Dubbo里面也有一些属于自己的开发需求。

对于开发者或者使用者而言,最为关注的部分往往就是业务操作部分,在业务操作部分里面重点就在于接口。实际上分为这么多的层次结构本身是非常有意义的,例如:在进行业务交换的时候往往会传递VO类对象,那么这个对象一旦传递就一定会牵扯到远程传输,而一旦需要远程传输对象,那么就一定需要有序列化的操作支持。而且Dubbo本身需要有一个注册中心,那么注册中心负责Dubbo所有元数据的提供,那么依靠这些元数据的信息提供才可以找到所需要的

Dubbo服务,同时在整个的设计里面,也提供有一个监控工具,监控所有的Dubbo服务。

在整个的Dubbo开发框架里面有两个非常重要的角色操作:服务提供者(Provider)、消费者(Consumer),就可以简单的理解为Provider提供有具体的业务接口实现类,而Consumer依据远程接口来调用远程对象(提供者上提供的业务接口实现类)。

在整个Dubbo的设计里面充分的考虑到了各类用户的需求,一些底层的通讯或者是信息存储都提供有大量的不同的存储方案。

时间: 2024-12-29 11:36:41

Dubbo分布式框架(阿里开源)的相关文章

dubbo分布式框架下web层调用业务层一直报空指针异常的解决办法

java.lang.NullPointerException............... 环境:SSM(通用mapper)+Dubbo 1.检查导包 提示注解@Reference  应该导入  import com.alibaba.dubbo.config.annotation.Reference;    @Service 应该导入  import com.alibaba.dubbo.config.annotation.Service; 2.检查 maven工程的业务层(service层) 是

akka.net与微软分布式框架Orleans

微软分布式框架Orleans开源了 开源地址: https://github.com/dotnet/orleans 昨天编译了一下,这个最新的Orleans安装程序(用github源码编译的) 下载地址:http://pan.baidu.com/s/1bntoEtD Orleans官方文档:https://github.com/dotnet/orleans/wiki Orleans白皮书: http://research.microsoft.com/pubs/210931/Orleans-MSR

当当网开源Dubbox,扩展Dubbo服务框架支持REST风格远程调用

当当网近日开源了Dubbox项目,可为Dubbo服务框架提供多项扩展功能,包括REST风格远程调用.Kryo/FST序列化等等. 当当网架构部和技术委员会架构师沈理向InfoQ中文站介绍了Dubbox项目,开发背景和主要特点描述如下: Dubbo是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的SOA基础框架.作为一个重要的技术研究课题,在当当网我们根据自身的需求,为Dubbo实现了一些新的功能,并将其命名为Dubbox(即Dubbo eXtensi

6-JEESZ分布式框架-dubbo简介

声明:因为JEESZ分布式框架运行环境是基于linux系统的,这边也总结了网上的一些资料,考虑到后期博客作为框架的原生教程,故这边做详细的安装记录,也希望能够帮助到各位朋友 1. Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的

Dubbo分布式服务框架入门

参考http://blog.csdn.net/u013142781/article/details/50387583 一.Dubbo概念介绍 1.1.Dubbo是什么? Dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC(Remote Procedure Call Protocol)远程服务调用方案,以及SOA(Service-Oriented Architecture,面向服务的体系结构)服务治理方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只

(七) 构建dubbo分布式平台-maven构建ant-framework框架的pom.xml文件配置

上一篇我们介绍<构建dubbo分布式平台-maven构建ant-config项目>,框架使用maven进行构建,根据我们的规划,要将子项目全部构建出来,今天重点讲解的是ant-framework可信项目的构建过程. 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板.另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: 1. annotation相关注解:数据签名注解.用户是否走sso登录注解等: 2. Be

(七) 构建dubbo分布式平台-maven构建ant-framework框架的pom.xml文件配

上一篇我们介绍<构建dubbo分布式平台-maven构建ant-config项目>,框架使用maven进行构建,根据我们的规划,要将子项目全部构建出来,今天重点讲解的是ant-framework可信项目的构建过程. 其中ant-framework是ant分布式框架的基础核心框架,其中包括CRUD,MVC等一系列基类和模板.另外定义了spring,mybatis,wink等底层框架扩展项目,具体内容包括: annotation相关注解:数据签名注解.用户是否走sso登录注解等: Bean的相关认

dubbo_分布式框架dubbox介绍

1.Dubbo概述Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及作为SOA服务治理的方案.简单的说,dubbo就是个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才有dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架 它的核心功能包括:#remoting:远程通讯,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式.#Cluste

Dubbo服务框架解析(一)

公司的一个项目的分布式系统的服务管理,使用了阿里的服务框架Dubbo,因此这里准备对服务框架进行了介绍. Dubbo服务框架可以使得java分布式系统之间进行解耦,使用一个服务注册中心来统一管理服务的信息,服务提供者提供注册中心进行注册,而服务消费者可以透明地订阅和消费服务.并支持服务的路由.过滤.负载均衡等,支持多种通讯协议及NIO框架,是一个灵活性和扩展性非常棒的服务管理框架. 本文以github中当前版本2.5.4的源码来分析. 为了支持更灵活的扩展性,当前dubbo拆分了非常多的proj