UDN-企业互联网技术人气社区

板块导航

浏览  : 7481
回复  : 13

[服务器软件] Dubbox开源框架

[复制链接]
Z肚杯的头像 楼主
发表于 2015-9-7 16:00:42 | 显示全部楼层 |阅读模式
1.Dubbox诞生背景

Dubbox是当当网在开源框架Dubbo基础之上,根据自身技术需要,进行优化扩展的一套新的开源框架。
阿里巴巴为了满足在高访问量下,对分布式服务的管理,独立开发了一套具有高扩展性的开源框架——Dubbo。
当网站服务越来越多,负载均衡器的单点压力越来越大时,服务间的依赖关系也越来越复杂,很难判断各服务所需多少台设备支持。甚至连架构师都不能完整的描述应用的架构关系,分不清各应用间的启动次序。而Dubbo可以协助用户,自动理清服务关系,协助进行分布式管理。

华丽丽的分割线--------------------------------其实我只是想让大家休息一会儿

Dubbo的主要功能包括:高性能NIO通讯及多协议集成,服务动态寻址与路由,软负载均衡与容错,依赖分析与降级等。它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合,或者最大限度地松耦合。Dubbo采用微内核搭配丰富插件的模式,便于用户二次开发,具有极强的适应性。
从性能上来看,Dubbo通过长连接减少握手,通过NIO及线程池在单连接上并发拼包处理消息,通过二进制流压缩数据,比常规HTTP等短连接协议更快。在阿里巴巴内部,每天能够支撑2000多个服务,30多亿访问量,最大单机支撑每天近1亿访问量。

2.Dubbox对远程调用的扩展

dubbo支持多种远程调用方式,但缺乏对当今特别流行的REST风格远程调用(HTTP+JSON/XML)的支持。REST的主要优点包括:可更高效利用缓存来提高响应速度;通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性;浏览器即可作为客户端,简化软件需求;相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小;不需要额外的资源发现机制;在软件技术演进中的长期的兼容性更好;几乎支持所有语言和平台;学习和使用的门槛也较低。鉴于此,当当网在Dubbox中,加入了对REST风格远程调用的支持。


dubbox基于非常成熟的JBoss RestEasy框架,在dubbo中实现了REST风格的远程调用,以显著简化企业内部的跨语言交互,同时显著简化企业对外的Open API、无线API甚至AJAX服务端等等的开发。事实上,这个REST调用也使得Dubbo可以对当今特别流行的“微服务”架构提供基础性支持。 另外,REST调用也达到了比较高的性能,在基准测试下,REST与Dubbo 2.x默认的RPC协议之间有1.5倍左右的性能差距

正是由于REST在适用性方面的优点,所以在dubbo中支持REST,可以为当今多数主流的远程调用场景都带来好处:
通过HTTP和文本消息进行通信,可以简化企业内部的异构系统之间的跨语言调用;

简化对第三方Open API的开发。既可以用dubbo来开发专门的Open API应用,也可以将原内部使用的dubbo service直接发布为对外的Open REST API;
简化移动APP或者PC桌面客户端开发。既可以用dubbo来开发专门针对移动或桌面的服务器端,也可以将原内部使用的dubbo service直接暴露给手机APP或桌面程序。

3.Dubbox对序列化的扩展

dubbo RPC是dubbo体系中最核心的一种高性能、高吞吐量的远程调用方式。
dubbo RPC主要用于两个dubbo系统之间作远程调用,特别适合高并发、小数据的互联网场景。而序列化对于远程调用的响应速度、吞吐量、网络带宽消耗等同样也 起着至关重要的作用,是我们提升分布式系统性能的最关键因素之一。在dubbo RPC中,同时支持多种序列化方式,其中,针对JAVA的序列化主要是采用JDK自带的实现,所以性能很不理想。

最近几年,各种高效序列化方式层出不穷。其中Kryo和FST,就是专门针对JAVA语言的。Kryo凭借性能优势,已经在Twitter、Groupon、Yahoo等开源项目中广泛使用。其性能显著优于dubbo目前所用的序列化方式。而FST目前虽然产生时间不久,还缺乏足够的成熟案例,但也是业内看好的序列化方式。
就此,dubbox提供了支持基于Kryo和FST的JAVA高效序列化实现。

4.Dubbox的其他扩展

扩展了基于嵌入式tomcat实现dubbo的 HTTP remoting体系,用以逐步取代Dubbo中旧版本的嵌入式Jetty,可以显著的提高REST等的远程调用性能,并升级对Servlet API的支持;

升级Spring:将dubbo中Spring升级到目前最常用的3.x版本,减少项目中版本冲突带来的麻烦;
升级ZooKeeper客户端:将dubbo中的zookeeper客户端升级到最新的版本,以修正老版本中包含的bug。
发表于 2015-9-7 20:24:42 | 显示全部楼层
学习了
使用道具 举报

回复

发表于 2015-9-9 16:08:21 | 显示全部楼层
大牛逼大牛逼大牛逼大牛逼大牛逼大牛逼
使用道具 举报

回复

发表于 2015-9-10 13:38:13 | 显示全部楼层
怎么学习啊?这只是介绍啊!
使用道具 举报

回复

发表于 2015-9-15 09:22:39 | 显示全部楼层
抽象啊抽象
使用道具 举报

回复

Z肚杯的头像 楼主
发表于 2015-9-24 11:36:42 | 显示全部楼层
guohch 发表于 2015-9-10 13:38
怎么学习啊?这只是介绍啊!

那你写一篇我看看呀
使用道具 举报

回复

发表于 2015-10-9 09:24:13 | 显示全部楼层
学到了,挺好的分享
使用道具 举报

回复

发表于 2015-10-12 10:47:19 | 显示全部楼层
学习中...
使用道具 举报

回复

发表于 2015-10-18 09:22:58 | 显示全部楼层
顶                              
使用道具 举报

回复

发表于 2015-11-15 19:57:49 | 显示全部楼层
使用道具 举报

回复

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

关于我们
联系我们
  • 电话:010-86393388
  • 邮件:udn@yonyou.com
  • 地址:北京市海淀区北清路68号
移动客户端下载
关注我们
  • 微信公众号:yonyouudn
  • 扫描右侧二维码关注我们
  • 专注企业互联网的技术社区
版权所有:用友网络科技股份有限公司82041 京ICP备05007539号-11 京公网网备安1101080209224 Powered by Discuz!
快速回复 返回列表 返回顶部