学习dubbo(一): 简介

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

Dubbo是什么?

Dubbo是一个分布式服务服务框架,致力于提高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。

简单的说,dubbo就是一个服务框架,如果没有分布式的需求,其实是不需要用的,只有在分布式的时候,才用dubbo这样的分布式服务框架的需求,并且本质上是个服务调用的东东,说白了就是个远程服务调用的分布式框架(告别web service模式中的WSDL,以服务者与消费者的方式在dubbo上注册)

其核心部分包含:

1、远程通讯:提供对多种基于长连接的NIO框架抽象封装,包括多线程模型,序列化,

以及“请求-响应”模式的信息交换方式。

2、集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载

均衡、失败容错、地址路由、动态配置等集群支持。

3、自动发现:基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地

                 址透明,使服务提供方可以平滑增加或减少机器。

Dubbo能做什么?

1、透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任

何API侵入

2、软负载均衡及容错机制,可在内网代替F5等硬件负载均衡器,降低成本,减少单点。

3、服务自动注册与发现,不再需要写死服务提供方地址,注册中心基于接口名查询服务提

供者的IP地址,并且能够平滑添加或删除服务提供者。

4、Dubbo采用全Spring配置方式,透明化接入应用,对应用没有任何API侵入,只需要用

Spring加载Dubbo的配置即可,Dubbo基于Spring的Schema扩展进行加载。

Dubbo架构

节点角色说明:

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

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

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

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

· Container: 服务运行容器。

调用关系说明:

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

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

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

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

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

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

Dubbo的官方

http://dubbo.io/

时间: 2024-11-05 13:46:32

学习dubbo(一): 简介的相关文章

Mahout学习之Mahout简介、安装、配置、入门程序测试

一.Mahout简介 查了Mahout的中文意思--驭象的人,再看看Mahout的logo,好吧,想和小黄象happy地玩耍,得顺便陪陪这位驭象人耍耍了... 附logo: (就是他,骑在象头上的那个Mahout) 步入正文啦: Mahout 是一个很强大的数据挖掘工具,是一个分布式机器学习算法的集合,包括:被称为Taste的分布式协同过滤的实现.分类.聚类等.Mahout最大的优点就是基于hadoop实现,把很多以前运行于单机上的算法,转化为了MapReduce模式,这样大大提升了算法可处理的

Dubbo入门简介(一)

Dubbo入门简介(一) 一.什么是Dubbo Dubbo是阿里巴巴开源出来的一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案.通过扩展spring schema 和 注解标签,可以和spring无缝集成(http://blog.csdn.net/achilles12345/article/details/41789527) 核心组件: Remoting:提供对多种基于长连接的NIO框架抽象封装,包括多种线程模型,序列化,以及“请求-响应”模式的信息交

CloudStack 4.4学习总结之简介

CloudStack 4.4学习总结之简介 一.CloudStack简介 1.CloudStack是一个开源的具有高可用性及扩展性的云计算平台. 2.会发现其实CloudStack更像是一个商业化过后的产品,有着非常好的用户界面,各个模块默认集成的很好,且安装与部署过程也相对容易一些. 3.Cloudstack支持管理大部分主流的hypervisors,如KVM,XenServer,VMware,Oracle VM,Xen等. 4.CloudStack具有商业软件所拥有的完善的用户权限管理,可以

学习排序算法简介

学习排序算法简介 学习排序(Learning to Rank, LTR)是一类基于机器学习方法的排序算法. 传统经典的模型,例如基于TFIDF特征的VSM模型,很难融入多种特征,也就是除了TFIDF特征之外,就无法融入其他种类的特征了. 而机器学习的方法很容易融合多种特征,而且有成熟深厚的理论基础,参数也是通过迭代计算出来的,有一套成熟理论来解决稀疏.过拟合等问题. LTR方法大致可以分成三类: 1) Pointwise 单文档方法 2) Pairwise 文档对方法 3) Listwise 文

Android学习5—布局简介

Android界面的布局主要有四种,分别为RelativeLayout.LinearLayout.TableLayout.FrameLayout,接下来分别介绍这些布局如何使用(为了简单起见,接下来的介绍工作中,我分别附上布局文件的代码以及效果图,供大家参考) 一:RelativeLayout <?xml version="1.0" encoding="utf-8"?> <RelativeLayout xmlns:android="htt

学习笔记_svn简介

版本控制(Revision control)是维护工程蓝图的标准做法,能追踪工程蓝图从诞生一直到定案的过程.是一种记录若干文件内容变化,以便将来查阅特定版本修订情况的系统. 可以简单理解: 版本控制工具:就是控制我们项目开发的代码,管理这些代码,使这些代码能够协调工作,形成一个完整的整体:可以上传代码,更新最新代码到本地: 具体做法: 三个人开发各自的代码,引入一台专门的服务器,SVN Server,一人开发代码,本地开发完直接上传到服务器(commit),SVN可以理解成代码数据库:不仅可以上

学习笔记_Ant简介

Ant,apache开源项目,基于Java的构建工具,是一个小程序.它通过自动完成所有的编译代码,运行测试以及 打包重新部署等繁琐费力的任务来帮助软件团队开发大程序: Ant的目标是自动完成所有的构建过程: 安装: 和安装JDK一样,在环境变量配置ANT_HOME: 然后在PATH加上%ANT_HOME%bin; 要求先有JDK环境,因为基于Java的构建工具,所以要先配置JDK: 配置好可以子啊控制台输入 ant -version 测试是否安装成功: 运行ant例子: 新建空文件夹: 控制台进

学习笔记_CVS简介

CVS - Concurrent Versions System(并发版本管理系统)是一个版本控制管理系统,它是SVN出现之前最为广泛使用的一个版本控制系统. CVS的优点就不多说了,总之没有它,早期的软件工程就基本无法实现,就无法凝聚广大程序员的力量.它在软件工程中的作用实在是无可比拟的. 一直到现今的版本控制的主流SVN出现之后,它才慢慢的逐步淡出我们的视线. 下载CVS服务器 网址为:<http://www.cvsnt.com/cvspro/>,下载CVSNT 并安装,当前使用的版本号为

KVM虚拟化学习总结之简介

KVM虚拟化学习总结之简介 1.虚拟化分为:全虚拟化和半虚拟化,需要CPU的支持. 2.全虚拟化:不需要做任何配置,让用户觉得就是一台真实的服务器 3.半虚拟机化:需要用户配置,有点麻烦. 4.KVM 仅仅是 Linux 内核的一个模块.管理和创建完整的 KVM 虚拟机,需要更多的辅助工具. 5.与Xen相比较,KVM就简化的多了.它不需要重新编译内核,也不需要对当前kernel做任何修改,它只是几个可以动态加载的.ko模块.它结构更加精简.代码量更小.所以,出错的可能性更小.并且在某些方面,性

[转帖]Hyperledger Fabric 学习一:简介

Hyperledger Fabric 学习一:简介 https://www.jianshu.com/p/f971858b70f3?utm_campaign=maleskine&utm_content=note&utm_medium=seo_notes&utm_source=recommendation 1.Hyperledger简介 Hyperledger:超级账本,是首个面向企业应用场景的分布式账本平台,包括了:IBM.Intel.Cisco.DAH.摩根大通.R3等在内的众多科