引言

Dubbo(阿里)是一个被国内很多互联网公司广泛使用的开源分布式服务框架,这里强调的是服务,即使从国际视野来看应该也是一个非常全面的SOA基础框架。作为一个重要的技术研究课题。当当网根据自身的技术要求,在Dubbo不更新的情况下实现了Dubbo的很多的新功能,并将其命名为Dubbox(Dubbo eXtensions)

传统模式


传统的MVC架构就是有主要的三层来组成,基本上实现了这三层之后就可以完成一个简单的MVC的应用。首先Dao层是主要的数据库访问层,Service层主要是编写业务逻辑,Controller层表示控制器层主要的作用各个功能之间的控制。
一个最基本的WEB应用来说可以通过实现这三个层次来实现整个应用的功能。

引导

Dubbo主要做的就是将上面的分层分成两部分,上面那一部分打包成一个jar包,然后通过启动脚本启动各个应用。

也就是说可以将应用分别按照功能划分成功能不同的部分,例如上面我们将dao层和service层打包成一个Jar包,将控制层和前端页面打成一个war包。这里就产生了一个问题,就是controller层怎么调用Service层的逻辑呢?这个中间衔接的过程就是Dubbo。当项目越来越大的时候就会有很多的服务,例如一个电商系统的订单服务、用户管理服务、购买服务等等。每个服务都会打包成一个Jar包,而这些服务分布在不同的服务器上,有可能是Linux服务器有可能是Windows服务器,总之就是统一为控制器提供服务的。Controller就是去要调用这些服务才能正常的使用获取到数据。Dubbo就是实现了这些服务于Controller的调用。

对于dubbo来说本身就是一个集群,例如,有一个用户服务,这个服务部署到一个节点上,当这个服务宕机之后就没有办法向外界提供服务,所以说这个服务被部署到不同的节点上,而dubbo内部也是提供了这样的集群的模式。

在使用了Dubbo之后,还要对这些服务进行一定的管理,要从性能等各个方面来考虑这个问题。这样在高并发的时候就可以实现集群之间的正常的调用。不然的话像是双十一那么高的并发量淘宝的服务器早就宕机了。这里也为大家提出了一个概念就是负载均衡。

这个也就是为什么Dubbo被称为是分布式服务治理框架。当然与这个框架有相同的功能的就是我们SpringCould 中的Eureka等。

至于比较高级的使用,例如跨机房操作,管理操作等都是通过管控台来实现的。总之就是希望这些服务是高可用的,就是希望这些应用能正常的使用,不至于一个宕机之后服务不能使用的情况。


Dubbo子系统部署之后,对内可以为PHP提供服务,可以对.NET提供服务,对外可以对外网开放服务,可以在手机端实现调用、在浏览器提供调用等。

Dubbo简介

Dubbo是什么?

Dubbo是一个分布式服务框架,致力于高性能透明化的RPC远程服务调用解决方案,SOA服务治理方案。从这个方面来看dubbo就是一个服务框架,如果没有分布式的需要其实是没必要使用的。这个只有在分布式的时候才有对于Dubbo的需求,并且对于本质上上服务调用这个东西说白了就是远程服务调用的分布式框架。
比较核心的部分包括

  • 远程通讯:提供对多种基于长连接的NIO框架的抽象封装,包括线程模型,序列化,以及“请求-响应”模式。
  • 集群容错:提供基于接口方法的远程过程调用,例如多种协议支持,软负载均衡,失败容错,路由,动态配置等。
  • 动态发现:基于注册中心目录服务,这在SpringCould 的Eureka等都是使用服务消费方能动态查找服务提供方,使地址透明,使服务提供方可以比较容易的实现动态的变化机器数量。

Dubbo用途

Dubbo能做什么
  • 透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需要简单的配置,也没有API的侵入
  • 负载均衡机制和容错机制,可以在内网替代F5等硬件负载均衡器,降低成本,减少单点
  • 服务的注册于自动发现,不需要通过写死服务提供方的地址,注册中心基于接口查询服务提供者的IP地址,并且能够动态的添加很删除服务提供方。
  • Dubbo采用了Spring的配置方式,透明接入应用,这样来说的Spring本身就是一个轻量级框架,也就是说使用Spring配置方式对应用没有任何的API侵入,Dubbo是基于Spring 的Schema扩展,对于这个功能的开发可以参考Spring源码中对于Schema的实现。

Dubbo学习笔记(一)相关推荐

  1. 【转载保存】dubbo学习笔记

    Dubbo Dubbo简介 首先,我理解的Dubbo,从大的方向来看是单体应用到分布式应用过度期的一个产物,具体来说应该是分布式应用从早期的SOA到微服务过度的一个产物. 在编写分布式场景下高并发.高 ...

  2. Dubbo学习笔记:No provider available for the service ...异常问题的解决

    刚开始学习dubbo,先跑了一下github上面down下来的demo,开洞zookeeper,运行provider和consumer,实现远程调用.然后就自己敲代码,对逻辑做一点灵活性的改变.我也指 ...

  3. dubbo学习笔记 一 源码编译

    前面学习了netty和rocketmq,当然前面的文章还会继续更新,继续往下写 2016 没几天了,我打算写下dubbo 2017 继续深入源码,大家有啥问题 都可以一起来讨论 源码搭建 下载源码 同 ...

  4. Apace dubbo学习笔记(一)

    Dubbo是阿里巴巴开发的一个开源的高性能.高可用.可扩展的分布式RPC调用框架,致力于提供高性能和透明化的 RPC 远程调用服务解决方案.作为阿里巴巴 SOA 服务化治理方案的核心框架,目前已进入 ...

  5. dubbo学习笔记 第四章构建dubbo的web应用 上

    上一章节介绍了dubbo的开源项目自带的例子,但是这些例子都是直接运行main方法来跑代码,实际应用中我们更多地是需要使用web应用来支撑,接下来介绍一下如何搭建dubbo的web应用,我们将用的sp ...

  6. dubbo学习笔记 第三章简介dubbo的工作原理

    一.工作原理图 这是dubbo官网的关于dubbo工作原理,其中最核心的应该是Registry注册中心,Monitor,Consumer消费者和Provider服务提供者四个部分,注册中心关系这消费者 ...

  7. Dubbo学习笔记(二)

    引言 首先这里介绍一下Dubbo这个框架的官方网站.http://dubbo.apache.org/en-us/ ,提供一个开发文档的地址 http://dubbo.apache.org/en-us/ ...

  8. Dubbo学习笔记002---安装Zookeeper_并且安装Dubbo的管理控制台

    DUBBO的介绍部分我这里就不介绍了,大家可参考官方文档. DUBBO的注册中心zookeeper的安装在上一章节就有,大家可以参考我的安装过程:http://blog.csdn.net/zsq520 ...

  9. Dubbo学习笔记001---分布式服务调用_Dubbo简介_依赖zookeeper做为注册中心进行服务注册与发现

    JAVA技术交流QQ群:170933152 Dubbo是阿里巴巴SOA服务化治理方案的核心框架,每天为2,000+个服务提供3,000,000,000+次访问量支持,并被广泛应用于阿里巴巴集团的各成员 ...

最新文章

  1. 蓝桥杯 【基础练习】 十六进制转八进制
  2. Strategy_Level2
  3. 深度学习和几何(演讲提要)
  4. OpenCVSharp_保存浮点型Mat数据
  5. [ay原创作品]用wpf写了个模仿36Kr网站登录背景的效果
  6. 买台式电脑还是笔记本好?
  7. 【githubgit】1、github中的watch、star、fork的作用
  8. 流行学习简单入门与理解
  9. 轻量级 Kubernetes K3s - Github热点
  10. WildFly 8与GlassFish 4 –选择哪个应用服务器
  11. 全国计算机等级考试准考证下载 怎么弄
  12. Windows7电脑启动时提示文件winload.exe无法验证其数字签名,错误代码0xc0000428的解决方法
  13. latex pdf 统计字数
  14. 说说我对[lambda x: x*i for i in range(4)]的理解
  15. 游戏公司的区块链冒险:一周时间从火爆到熄火
  16. 6月29日科技资讯|首款搭载国产CPU的域名服务器发布;iPhone彻底淘汰Lightning接口?ChromeOS 75发布
  17. [ FI基本业务流程 ] - FI与MM间的业务集成
  18. kubernetes集群安装
  19. 问题:munmap_chunk(): invalid pointer
  20. 5. PostCSS

热门文章

  1. axios 使用步骤很简单,首先在前端项目中,引入 axios:
  2. golang 学习笔记
  3. JAVA中String类以形参传递到函数里面,修改后外面引用不能获取到更改后的值
  4. Java多线程时内存模型
  5. JavaGC(1)—深入浅出Java垃圾回收机制
  6. PHP生成随机密码的4种方法及性能对比
  7. Spring AOP源码分析(二)JDK动态代理和CGLIB介绍
  8. python import 错误 TypeError: 'module' object is not callable
  9. ArcGIS Server 10.1发布结果地图服务——与10.0的区别及过程
  10. Hadoop (HDFS)分布式文件系统基本操作