阿里巴巴分布式服务框架 dubbo 团队成员梁飞专访 -乐鱼入口

2012-11-12  编辑 wangguo 评论(50条) 有611779人浏览
dubbo是阿里巴巴内部的soa服务化治理方案的核心框架,每天为2000 个服务提供3,000,000,000 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。dubbo自2011年开源后,已被许多非阿里系公司使用。

项目乐鱼app官网主页:

为了使大家对该框架有一个深入的了解,本期我们采访了dubbo团队主要开发人员之一。

iteye期待并致力于为国内优秀的开源项目提供一个免费的推广平台,如果你和你的团队希望将自己的开源项目介绍给更多的开发者,或者你希望我们对哪些开源项目进行专访,请告诉我们,发站内短信给或者发邮件到webmaster@iteye.com即可。

先来个自我介绍吧!

我叫梁飞,花名虚极,之前负责dubbo服务框架,现已调到天猫。

我的博客:

dubbo是什么?能做什么?

dubbo是一个分布式服务框架,以及soa治理方案。其功能主要包括:高性能nio通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。

可参见:

dubbo适用于哪些场景?

当网站变大后,不可避免的需要拆分应用进行服务化,以提高开发效率,调优性能,节省关键竞争资源等。

当服务越来越多时,服务的url地址信息就会爆炸式增长,配置管理变得非常困难,f5硬件负载均衡器的单点压力也越来越大。

当进一步发展,服务间依赖关系变得错踪复杂,甚至分不清哪个应用要在哪个应用之前启动,架构师都不能完整的描述应用的架构关系。

接着,服务的调用量越来越大,服务的容量问题就暴露出来,这个服务需要多少机器支撑?什么时候该加机器?等等……

在遇到这些问题时,都可以用dubbo来解决。

可参见:

dubbo的设计思路是什么?

该框架具有极高的扩展性,采用微核 插件体系,并且文档齐全,很方便二次开发,适应性极强。

可参见:

dubbo的需求和依赖情况?

dubbo运行jdk1.5之上,缺省依赖javassist、netty、spring等包,但不是必须依赖,通过配置dubbo可不依赖任何三方库运行。

可参见:

dubbo的性能如何?

dubbo通过长连接减少握手,通过nio及线程池在单连接上并发拼包处理消息,通过二进制流压缩数据,比常规http等短连接协议更快。在阿里巴巴内部,每天支撑2000多个服务,30多亿访问量,最大单机支撑每天近1亿访问量。

可参见:

和淘宝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也支持更多协议,更多注册中心的集成,以适应更多的网站架构。

dubbo在安全机制方面是如何解决的?

dubbo主要针对内部服务,对外的服务,阿里有开放平台来处理安全和流控,所以dubbo在安全方面实现的功能较少,基本上只防君子不防小人,只防止误调用。

dubbo通过token令牌防止用户绕过注册中心直连,然后在注册中心上管理授权。dubbo还提供服务黑白名单,来控制服务所允许的调用方。

可参见:

dubbo在阿里巴巴内部以及外部的应用情况?

在阿里内部,除淘系以外的其它阿里子公司,都在使用dubbo,包括:中文主站,国际主站,aliexpress,阿里云,阿里金融,阿里学院,良无限,来往等等。

开源后,已被:去哪儿,京东,吉利汽车,方正证劵,海尔,焦点科技,中润四方,华新水泥,海康威视,等公司广泛使用,并不停的有新公司加入,社区讨论及贡献活跃,得到用户很高的评价。

可参见:

在分布式事务、多语言支持方面,dubbo的计划是什么?

分布式事务可能暂不会支持,因为如果只是支持简单的xa/jta两阶段提交事务,实用性并不强。用户可以自行实现业务补偿的事件,或更复杂的分布式事务,dubbo有很多扩展点可以集成。

在多语言方面,dubbo实现了c 版本,但在内部使用面极窄,没有得到很强的验证,并且c 开发资源紧张,没有精力准备c 开源事项。

dubbo采用的开源协议?商业应用应该注意哪些事项?

dubbo采用apache license 2.0开源协议,它是一个商业友好的协议,你可以免费用于非开源的商业软件中。

你可以对它进行改造和二次发布,只要求保留阿里的著作权,并在再发布时保留原始许可声明。

可参见:

dubbo开发团队情况?

dubbo共有六个开发人员参与开发和测试,每一个开发人员都是很有经验,团队合作很默契,开发过程也很有节奏,有完善质量保障流程。团队组成:

  • 梁飞 (开发人员/产品管理)
  • 刘昊旻 (开发人员/过程管理)
  • 刘超 (开发人员/用户支持)
  • 李鼎 (开发人员/用户支持)
  • 陈雷 (开发人员/质量保障)
  • 闾刚 (开发人员/开源运维)

从左至右:刘超,梁飞,闾刚,陈雷,刘昊旻,李鼎

可参见:

其他开发者如何参与?可以做哪些工作?

开发者可以在github上fork分支,然后将修改push过来,我们审核并测试后,会合并到主干中。

github地址:

开发者可以在jira上认领小的bug修复,也可以在开发者指南页面领取大的功能模块。

jira:(暂不可用)

开发者指南:

dubbo未来的发展计划?

dubbo的rpc框架已基本稳定,未来的重心会放在服务治理上,包括架构分析、监控统计、降级控制、流程协作等等。

可参见:
  • 大小: 93.8 kb


评论 共 50 条
50 楼 2018-05-24 16:17
写的和不错,最近也在写 dubbo 的原理和源码解析。

http://www.iocoder.cn/?iteye&103
49 楼 2018-03-27 18:10
spring dubbo使用java的mian启动 启动会在20880上默认注册一次,在应用指定的端口上再注册一次。专家这个怎么回事?怎么解决
48 楼 2017-06-15 11:23
我基于spring的 tx下 platformtransactionmanager,结合dubbo框架实现了对dubbo的分布式事务支持。框架很好的兼容并可以区分本地和分布式事务,并且该框架可以兼容任何基于spring的db框架,例如mybaits hibernate等。在需要的地方只需要添加一个分布式事务注解就行。我提供了一个txmanager服务来管理所有业务模块的事务调度,本身txmanager也可以做集群化。我把框架开源放在了github上,详细见:https://github.com/1991wangliang/transaction,希望大家多提提意见,共同维护好框架。
47 楼 2017-03-30 15:24
建个秋秋群一起研究542241455来
46 楼 2016-11-17 14:30
大神你好,我有个好奇想问问,dubbo的名字的命名是源于何处?有什么寓意呢??
45 楼 2016-06-27 09:56
ztreeapi 写道
哈哈哈,看到一个很久未见的好哥们儿的照片了。。。。

44 楼 2016-03-29 15:18
dubbo现在为什么停止更新了?
43 楼 2016-02-01 17:39
卧槽,完全听不懂,名词好专业 
42 楼 2015-12-31 23:19
大家谁知道shiro为什么调不了dubbo的服务
41 楼 2015-11-23 10:29
一群神一样的开发人员!
40 楼 2015-10-10 08:34
麻烦问一下,与spring结合时,服务类的实现可以不使用单例模式吗
39 楼 2015-08-28 12:14
javatar 写道
majiashiweiyi 写道
这个框架和淘宝的notify、metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。


notify是推模式的消息中间件。
metaq是拉模式的消息中间件。
dubbo是远程服务调用中间件。
是互补的。

请问一下什么是消息队列中间件的推模式和拉模式?
38 楼 2015-06-13 22:19
试试反反复复
37 楼 2015-05-20 16:12
[list]
  • [list]
  • [*][list]
  • [*][*][*]
    引用
    引用
    引用
    引用
    引用
  • [*][/list]
  • [/list]
  • [/list]
    36 楼 2014-05-17 13:28
    javatar 写道
    majiashiweiyi 写道
    这个框架和淘宝的notify、metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。


    notify是推模式的消息中间件。
    metaq是拉模式的消息中间件。
    dubbo是远程服务调用中间件。
    是互补的。

    该问题域有没有类似dubbo的其他开源乐鱼app官网的解决方案呢?
    35 楼 2014-05-17 13:27
    该问题域有没有类似dubbo的其他开源乐鱼app官网的解决方案呢?
    34 楼 2014-04-23 15:38
    我们现在开发环境,所有提供者服务的注册,都是通过main函数,读取spring配置文件注册的,
        如果我们在生产环境,怎么部署才是比较可行合理的,希望你能给一个建议。
    33 楼 wangguo 2014-02-25 12:48
    心有余闲 写道
    教程地址访问不了!

    已将wiki迁至github,文中链接已更新
    32 楼 2014-02-19 17:57
    教程地址访问不了!
    31 楼 wangguo 2014-01-20 09:43
    lpingxh 写道
    dubbo 乐鱼app官网主页 http://code.alibabatech.com/wiki/display/dubbo/home-zh  现在访问不了么?

    现在貌似访问不了,不知道是不是正在向淘宝的taocode上迁移
    可以先访问这个
    30 楼 2014-01-17 21:16
    dubbo 乐鱼app官网主页 http://code.alibabatech.com/wiki/display/dubbo/home-zh  现在访问不了么?
    29 楼 2013-12-27 19:50
    请问梁飞:如何客户端启动tomcat那dubbo框架如何动态的注册地三方jar包呢?
    28 楼 2013-01-09 15:15
    majiashiweiyi 写道
    这个框架和淘宝的notify、metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。


    notify是推模式的消息中间件。
    metaq是拉模式的消息中间件。
    dubbo是远程服务调用中间件。
    是互补的。
    27 楼 2012-12-30 09:11
    26 楼 2012-12-14 09:22
    请问:基于dubbo发布webservice时,如果想对这个webservice本身加上token认证,如何实现?(特指saopheader获取token令牌这种)
    25 楼 2012-12-04 18:43
    这个框架和淘宝的notify、metamorphosis等消息中间件有什么区别呢。望楼主指点一下,谢谢了。
    24 楼 2012-11-20 10:28
    我感觉应该什么都是有两面性的
    23 楼 2012-11-18 22:18
    开源免费,有希望
    22 楼 2012-11-17 09:18
    阿里巴巴吧的技术真的很强大!
    21 楼 2012-11-16 18:07
    java_user 写道
    lection.yu 写道
    wmcoo 写道
    任何java环境,gae,bae,sae 可以用不
    hessian是可以在gae下用的,其它没测试,应该也没问题

    楼主的dubbo我不是很理解作用,您将dubbo和hessian进行对比,是不是dubbo也是一个类似hessian或者webservice的分布式框架,提供一种协议和交互api?
    但是描述中又是soa又是二次开发什么的,好像不单纯只是一个分布式通讯那么简单。

    这个就是一个远程调用 负载均衡 路由规则的集合,和单纯的远程调用有差别。

    多谢指点,豁然开朗。我接触的软件,复杂程度还没有到内部服务的调用都需要到负载均衡的级别。

    发表评论

    您还没有登录,请您登录后再发表评论

    相关推荐

    • dubbo是阿里巴巴内部的soa服务化治理方案的核心框架,每天为2000 个服务提供3,000,000,000 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。dubbo自2011年开源后,已被许多非阿里系公司使用。项目乐鱼app官网主页:...

    • dubbo是阿里巴巴内部的soa服务化治理方案的核心框架,每天为2000 个服务提供3,000,000,000 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。dubbo自2011年开源后,已被许多非阿里系公司使用。 项目乐鱼app官网主页:...

    • dubbo是阿里巴巴内部的soa服务化治理方案的核心框架,每天为2000 个服务提供3,000,000,000 次访问量支持,并被广泛应用于阿里巴巴集团的各成员站点。dubbo自2011年开源后,已被许多非阿里系公司使用。 项目乐鱼app官网主页...

    • 需要配和指定版本torch-2.0.1 cu118使用,请在安装该模块前提前安装官方命令安装torch-2.0.1 cu118对应cuda11.8和cudnn,注意电脑需要有nvidia显卡才行,支持gtx920以后显卡,比如rtx20 rtx30 rtx40系列显卡

    • 电阻片自动点胶机(sw20可编辑 cad)

    • 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算法等)实现和优化 美赛算法实现,各种智能算法(遗传算法、模拟退火算法、蚁群算法、粒子算法、神经网络算

    • yolov8 asp源码—designers site 全站静态建站cms v2.0.zip asp源码—designers site 全站静态建站cms v2.0.zip asp源码—designers site 全站静态建站cms v2.0.zip asp源码—designers site 全站静态建站cms v2.0.zip asp源码—designers site 全站静态建站cms v2.0.zip asp源码—designers site 全站静态建站cms v2.0.zip

    • 提供的源码资源涵盖了安卓应用、小程序、python应用和java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    • 需要配和指定版本torch-2.0.1 cu118使用,请在安装该模块前提前安装官方命令安装torch-2.0.1 cu118对应cuda11.8和cudnn,注意电脑需要有nvidia显卡才行,支持gtx920以后显卡,比如rtx20 rtx30 rtx40系列显卡

    • 泰坦尼克号数据集。 titanic数据集在数据分析领域是十分经典的数据集。泰坦尼克号轮船的沉没是历史上最为人熟知的海难事件之一。1912年4月15日,在她的处女航中,泰坦尼克号在与冰山相撞后沉没,在船上的 2224 名乘客和机组人员中,共造成 1502 人死亡。这场耸人听闻的悲剧震惊了国际社会,从而促进了船舶安全规定的完善。造成海难失事的原因之一是乘客和机组人员没有足够的救生艇。尽管在沉船事件中幸存者有一些运气因素,但有些人比其他人更容易存活下来,究竟有哪些因素影响着最终乘客的生存与否呢? 数据集包含11个特征,分别是: pclass:乘客所持票类,有三种值(lower,middle,upper) survived:0代表死亡,1代表存活 name:乘客姓名 sex:乘客性别 age:乘客年龄(有缺失) sibsp:乘客兄弟姐妹/配偶的个数(整数值) parch:乘客父母/孩子的个数(整数值) ticket:票号(字符串) fare:乘客所持票的价格(浮点数,0-500不等) cabin:乘客所在船舱(有缺失) embark:乘客登船港口:s、c、q(有缺失)

    • 托盘拆码垛机sw20

    • anaconda安装 asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip asp源码—bingsns供销版o2o源码 asp版 v3.0.zip

    • 提供的源码资源涵盖了安卓应用、小程序、python应用和java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    • 提供的源码资源涵盖了安卓应用、小程序、python应用和java应用等多个领域,每个领域都包含了丰富的实例和项目。这些源码都是基于各自平台的最新技术和标准编写,确保了在对应环境下能够无缝运行。同时,源码中配备了详细的注释和文档,帮助用户快速理解代码结构和实现逻辑。 适用人群: 这些源码资源特别适合大学生群体。无论你是计算机相关专业的学生,还是对其他领域编程感兴趣的学生,这些资源都能为你提供宝贵的学习和实践机会。通过学习和运行这些源码,你可以掌握各平台开发的基础知识,提升编程能力和项目实战经验。 使用场景及目标: 在学习阶段,你可以利用这些源码资源进行课程实践、课外项目或毕业设计。通过分析和运行源码,你将深入了解各平台开发的技术细节和最佳实践,逐步培养起自己的项目开发和问题解决能力。此外,在求职或创业过程中,具备跨平台开发能力的大学生将更具竞争力。 其他说明: 为了确保源码资源的可运行性和易用性,特别注意了以下几点:首先,每份源码都提供了详细的运行环境和依赖说明,确保用户能够轻松搭建起开发环境;其次,源码中的注释和文档都非常完善,方便用户快速上手和理解代码;最后,我会定期更新这些源码资源,以适应各平台技术的最新发展和市场需求。

    • 智慧方案 乐鱼app官网的解决方案 建设方案 数字化 工程方案 大数据平台 整体规划 白皮书 调研报告 分析报告 行业研究

    • 这是一款原创设计的红外线流水线烤箱的方案设计图纸,烤箱具有喷涂和烘烤的功能,设计的目的是提高生产效率,人工喷涂完产品后放入流水线卡槽,在输送链的带动下产品进入烤箱烘烤。图纸格式为solidworks2018,欢迎大家来下载。...

    • 半自动水口切除机sw18可编辑.zip

    • 需要配和指定版本torch-2.0.0 cu117使用,请在安装该模块前提前安装官方命令安装torch-2.0.0 cu117对应cuda11.7和cudnn,注意电脑需要有nvidia显卡才行,支持gtx920以后显卡,比如rtx20 rtx30 rtx40系列显卡

    • html5开发

    global site tag (gtag.js) - google analytics
    网站地图