Dubbo是阿里巴巴内部的SOA服务化治理方案的核心框架,每天为2000+ 个服务提供3,000,000,000+ 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。Dubbo自2011年开源后,已被许多非阿里系公司使用。
项目主页:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm
为了使大家对该框架有一个深入的了解,本期我们采访了Dubbo团队主要开发人员之一梁飞。
ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。
项目主页:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm
为了使大家对该框架有一个深入的了解,本期我们采访了Dubbo团队主要开发人员之一梁飞。
ITeye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给ITeye管理员或者发邮件到webmaster@iteye.com即可。
目 录 [ - ]
先来个自我介绍吧!
Dubbo是什么?能做什么?
Dubbo是一个分布式服务框架,以及SOA治理方案。其功能主要包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。
可参见:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm
可参见:http://alibaba.github.io/dubbo-doc-static/Home-zh.htm
Dubbo适用于哪些场景?
当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。
当服务越来越多时,服务的URL地址信息就会爆炸式增长,配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?等等……
在遇到这些问题时,都可以用Dubbo来解决。
可参见:Dubbo的背景及需求
当服务越来越多时,服务的URL地址信息就会爆炸式增长,配置管理变得非常困难,F5硬件负载均衡器的单点压力也越来越大。
当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。
接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?等等……
在遇到这些问题时,都可以用Dubbo来解决。
可参见:Dubbo的背景及需求
Dubbo的设计思路是什么?
Dubbo的需求和依赖情况?
Dubbo的性能如何?
Dubbo通过长连接减少握手,通过NIO及线程池在单连接上并发拼包处理消息,通过二进制流压缩数据,比常规HTTP等短连接协议更快。在阿里巴巴内部,每天支撑2000多个服务,30多亿访问量,最大单机支撑每天近1亿访问量。
可参见:Dubbo性能测试报告
可参见:Dubbo性能测试报告
和淘宝HSF相比,Dubbo的特点是什么?
1. Dubbo比HSF的部署方式更轻量,HSF要求使用指定的JBoss等容器,还需要在JBoss等容器中加入sar包扩展,对用户运行环境的侵入性大,如果你要运行在Weblogic或Websphere等其它容器上,需要自行扩展容器以兼容HSF的ClassLoader加载,而Dubbo没有任何要求,可运行在任何Java环境中。
2. Dubbo比HSF的扩展性更好,很方便二次开发,一个框架不可能覆盖所有需求,Dubbo始终保持平等对待第三方理念,即所有功能,都可以在不修改Dubbo原生代码的情况下,在外围扩展,包括Dubbo自己内置的功能,也和第三方一样,是通过扩展的方式实现的,而HSF如果你要加功能或替换某部分实现是很困难的,比如支付宝和淘宝用的就是不同的HSF分支,因为加功能时改了核心代码,不得不拷一个分支单独发展,HSF现阶段就算开源出来,也很难复用,除非对架构重写。
3. HSF依赖比较多内部系统,比如配置中心,通知中心,监控中心,单点登录等等,如果要开源还需要做很多剥离工作,而Dubbo为每个系统的集成都留出了扩展点,并已梳理干清所有依赖,同时为开源社区提供了替代方案,用户可以直接使用。
4. Dubbo比HSF的功能更多,除了ClassLoader隔离,Dubbo基本上是HSF的超集,Dubbo也支持更多协议,更多注册中心的集成,以适应更多的网站架构。
2. Dubbo比HSF的扩展性更好,很方便二次开发,一个框架不可能覆盖所有需求,Dubbo始终保持平等对待第三方理念,即所有功能,都可以在不修改Dubbo原生代码的情况下,在外围扩展,包括Dubbo自己内置的功能,也和第三方一样,是通过扩展的方式实现的,而HSF如果你要加功能或替换某部分实现是很困难的,比如支付宝和淘宝用的就是不同的HSF分支,因为加功能时改了核心代码,不得不拷一个分支单独发展,HSF现阶段就算开源出来,也很难复用,除非对架构重写。
3. HSF依赖比较多内部系统,比如配置中心,通知中心,监控中心,单点登录等等,如果要开源还需要做很多剥离工作,而Dubbo为每个系统的集成都留出了扩展点,并已梳理干清所有依赖,同时为开源社区提供了替代方案,用户可以直接使用。
4. Dubbo比HSF的功能更多,除了ClassLoader隔离,Dubbo基本上是HSF的超集,Dubbo也支持更多协议,更多注册中心的集成,以适应更多的网站架构。
Dubbo在安全机制方面是如何解决的?
Dubbo主要针对内部服务,对外的服务,阿里有开放平台来处理安全和流控,所以Dubbo在安全方面实现的功能较少,基本上只防君子不防小人,只防止误调用。
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。
可参见:Dubbo的令牌验证
Dubbo通过Token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。Dubbo还提供服务黑白名单,来控制服务所允许的调用方。
可参见:Dubbo的令牌验证
Dubbo在阿里巴巴内部以及外部的应用情况?
在阿里内部,除淘系以外的其它阿里子公司,都在使用Dubbo,包括:中文主站,国际主站,AliExpress,阿里云,阿里金融,阿里学院,良无限,来往等等。
开源后,已被:去哪儿,京东,吉利汽车,方正证劵,海尔,焦点科技,中润四方,华新水泥,海康威视,等公司广泛使用,并不停的有新公司加入,社区讨论及贡献活跃,得到用户很高的评价。
可参见:Dubbo的已知用户
开源后,已被:去哪儿,京东,吉利汽车,方正证劵,海尔,焦点科技,中润四方,华新水泥,海康威视,等公司广泛使用,并不停的有新公司加入,社区讨论及贡献活跃,得到用户很高的评价。
可参见:Dubbo的已知用户
在分布式事务、多语言支持方面,Dubbo的计划是什么?
分布式事务可能暂不会支持,因为如果只是支持简单的XA/JTA两阶段提交事务,实用性并不强。用户可以自行实现业务补偿的事件,或更复杂的分布式事务,Dubbo有很多扩展点可以集成。
在多语言方面,Dubbo实现了C++版本,但在内部使用面极窄,没有得到很强的验证,并且C++开发资源紧张,没有精力准备C++开源事项。
在多语言方面,Dubbo实现了C++版本,但在内部使用面极窄,没有得到很强的验证,并且C++开发资源紧张,没有精力准备C++开源事项。
Dubbo采用的开源协议?商业应用应该注意哪些事项?
Dubbo采用Apache License 2.0开源协议,它是一个商业友好的协议,你可以免费用于非开源的商业软件中。
你可以对它进行改造和二次发布,只要求保留阿里的著作权,并在再发布时保留原始许可声明。
可参见:Dubbo的开源许可证
你可以对它进行改造和二次发布,只要求保留阿里的著作权,并在再发布时保留原始许可声明。
可参见:Dubbo的开源许可证
Dubbo开发团队情况?
Dubbo共有六个开发人员参与开发和测试,每一个开发人员都是很有经验,团队合作很默契,开发过程也很有节奏,有完善质量保障流程。团队组成:
从左至右:刘超,梁飞,闾刚,陈雷,刘昊旻,李鼎
可参见:Dubbo的团队成员
- 梁飞 (开发人员/产品管理)
- 刘昊旻 (开发人员/过程管理)
- 刘超 (开发人员/用户支持)
- 李鼎 (开发人员/用户支持)
- 陈雷 (开发人员/质量保障)
- 闾刚 (开发人员/开源运维)
从左至右:刘超,梁飞,闾刚,陈雷,刘昊旻,李鼎
可参见:Dubbo的团队成员
其他开发者如何参与?可以做哪些工作?
开发者可以在Github上fork分支,然后将修改push过来,我们审核并测试后,会合并到主干中。
Github地址:https://github.com/alibaba/dubbo
开发者可以在JIRA上认领小的BUG修复,也可以在开发者指南页面领取大的功能模块。
JIRA:http://code.alibabatech.com/jira/browse/DUBBO(暂不可用)
开发者指南:http://alibaba.github.io/dubbo-doc-static/Developer+Guide-zh.htm
Github地址:https://github.com/alibaba/dubbo
开发者可以在JIRA上认领小的BUG修复,也可以在开发者指南页面领取大的功能模块。
JIRA:http://code.alibabatech.com/jira/browse/DUBBO(暂不可用)
开发者指南:http://alibaba.github.io/dubbo-doc-static/Developer+Guide-zh.htm
Dubbo未来的发展计划?
Dubbo的RPC框架已基本稳定,未来的重心会放在服务治理上,包括架构分析、监控统计、降级控制、流程协作等等。
可参见:http://alibaba.github.io/dubbo-doc-static/Roadmap-zh.htm
可参见:http://alibaba.github.io/dubbo-doc-static/Roadmap-zh.htm
转自:http://www.iteye.com/magazines/103
相关推荐
《Dubbo:阿里巴巴分布式服务框架详解》 Dubbo,源自阿里巴巴,是一款高性能、轻量级的开源Java RPC框架,它提供了三大核心能力:面向接口的远程方法调用、智能容错和负载均衡、以及服务自动注册与发现。作为企业级...
分布式服务框架 dubbo/dubbox 入门示例 1.透明化的远程方法调用,就像调用本地方法一样调用远程方法,只需简单配置,没有任何API侵入。 2.软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,降低成本,减少...
包含阿里分布式开源框架dubbo视频详解,dubbo工具包,源码分析,zookeepr视频,mycat介绍
分布式服务框架Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,旨在提高微服务架构下的服务调用效率,提供服务发现、流量控制、容错重试等核心功能。本调研报告将深入探讨Dubbo的核心特性、设计理念以及...
Dubbo分布式服务框架
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,它致力于提供面向服务的RPC(Remote Procedure Call)解决方案,以实现服务间的高效通信和治理。Dubbo的核心目标是促进微服务架构的发展,通过解耦...
本文档为alibaba 开源的优秀服务治理框架dubbo的使用手册,目前dubbo已经贡献给apache社区。
Dubbo 也是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。 主要核心部件: Remoting: 网络通信框架,实现了 sync-over-...
Dubbo是中国阿里巴巴开源的一款高性能、轻量级的Java分布式服务框架,它主要为了解决企业应用之间的服务调用问题,提供了服务注册、服务发现、负载均衡、容错处理等一系列完整的服务治理功能。在这个"Dubbo分布式...
在分布式服务框架dubbo中,主要包含以下几个关键概念: - API:dubbo的API定义了服务的接口。 - Provider:服务提供者,负责发布服务接口及其实现。 - Consumer:服务消费者,负责调用服务提供者发布的服务。 - ...
阿里巴巴的dubbo是一款高性能、轻量级的开源Java RPC框架,旨在提高服务间的通信效率,简化分布式系统的构建。在这个"阿里巴巴开源RPC框架dubbo的hello world实例"中,我们将深入理解dubbo的基本工作原理和如何创建...
分布式服务框架Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理解决方案,主要应用于Java环境。在本Demo中,我们将探讨如何基于Spring和Zookeeper搭建一个基础的Dubbo架构。 首先,我们要了解Dubbo的核心概念。...
Dubbo 是一款由阿里巴巴开源的分布式服务框架,它提供了一整套解决方案来支持微服务架构中的服务治理和服务通信。 #### 1. **远程服务调用** Dubbo 支持多种远程调用协议,如 Netty、Mina、Grizzly 等,同时也兼容...
教程视频:Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成
Dubbo分布式服务架构,对于研究大型Web服务器的并发技术的同学们有帮助。
《分布式服务框架原理与实践(Dubbo,HSF)_李林锋著》这本书深入探讨了分布式服务框架的关键技术和实际应用,主要聚焦于两个知名的开源框架——Dubbo和HSF。这两者都是实现高效率、可扩展的分布式服务的核心工具,尤其...
Dubbo是阿里巴巴开源的一款高性能、轻量级的Java服务治理框架,它专注于服务之间的远程调用,旨在提高系统间的解耦和可扩展性。Dubbo的核心组件包括服务提供者(Provider)、服务消费者(Consumer)、注册中心...
1、dubbo入门教程 基础篇教学视频 高级篇教学视频 PPT源码 2、dubbo 进阶 dubbo的高级特征、集群,负载均衡、直连开发模式和API详解以及资料和...3、dubbo分布式项目实战 springmvc+dubbo项目 商场系统 数据交换平台
其中,阿里巴巴的开源项目Dubbo是一个非常重要的分布式服务框架,它致力于提供高性能和透明化的RPC(远程过程调用)服务,使得服务间的通信变得更加简单。本案例将带你深入理解Dubbo的核心特性和如何与Zookeeper协同...
分布式框架Dubbo是阿里巴巴开源的一款高性能、轻量级的服务治理框架,主要应用于Java环境。它致力于解决因网络异步导致的服务之间的调用问题,提升系统的响应速度和并发处理能力。在本项目中,我们将深入探讨如何...