设为首页 收藏本站
查看: 1441|回复: 0

[经验分享] Dubbox-扩展Dubbo服务框架支持REST风格远程调用[网摘]

[复制链接]

尚未签到

发表于 2017-3-2 12:18:40 | 显示全部楼层 |阅读模式
  当当网开源了 Dubbox 项目,可为 Dubbo 服务框架提供多项扩展功能,包括 REST 风格远程调用、Kryo/FST 序列化等等。
  当当网架构部和技术委员会架构师沈理向 InfoQ 中文站介绍了 Dubbox 项目,开发背景和主要特点描述如下:
  Dubbo 是一个被国内很多互联网公司广泛使用的开源分布式服务框架,即使从国际视野来看应该也是一个非常全面的 SOA 基础框架。作为一个重要的技术研究课题,在当当网我们根据自身的需求,为 Dubbo 实现了一些新的功能,并将其命名为 Dubbox(即 Dubbo eXtensions)。
  主要的新功能包括:

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


  • 支持基于 Kryo 和 FST 的 Java 高效序列化实现:基于当今比较知名的 Kryo 和 FST 高性能序列化库,为 Dubbo 默认的 RPC 协议添加新的序列化实现,并优化调整了其序列化体系,比较显著的提高了 Dubbo RPC 的性能,详见下图和文档中的基准测试报告。
DSC0001.png

DSC0002.png


  •   支持基于嵌入式 Tomcat 的 HTTP remoting 体系:基于嵌入式 tomcat 实现 dubbo 的 HTTP remoting 体系(即 dubbo-remoting-http),用以逐步取代 Dubbo 中旧版本的嵌入式 Jetty,可以显著的提高 REST 等的远程调用性能,并将 Servlet API 的支持从 2.5 升级到 3.1。(注:除了 REST,dubbo 中的 WebServices、Hessian、HTTP Invoker 等协议都基于这个 HTTP remoting 体系)。
  •   升级 Spring:将 dubbo 中 Spring 由 2.x 升级到目前最常用的 3.x 版本,减少项目中版本冲突带来的麻烦。
  •   升级 ZooKeeper 客户端:将 dubbo 中的 zookeeper 客户端升级到最新的版本,以修正老版本中包含的 bug。
  上面很多功能已在当当网内部稳定的使用,现在开源出来,供大家参考和指正。也希望感兴趣的朋友也来为 Dubbo 贡献更多的改进。
  注:dubbox 和 dubbo 2.x 是兼容的,没有改变 dubbo 的任何已有的功能和配置方式(除了升级了 Spring 之类的版本)。另外,dubbox 也严格遵循了 Apache 2.0 许可证的要求。
  附:分布式服务框架与 RPC 框架
  目前开源领域能找到的分布式服务框架也有不少,比较有代表性的包括 Twitter 的 Finagle(基于 Scala 语言),Flipkart(印度最大的 B2C 网站)的 Phantom(文档较少),Apache 的 Tuscany(有点陈旧,而且不是很适合互联网公司)等等,其实国内也有少数公司提供了开源 Java 服务框架,但 dubbo 在其功能完善性、架构优雅性、使用简便性等方面依然有其相对独特的优势,尽管 dubbo 绝大部分的开发都是 2012 年以前完成的。
  另外,业界的开源 RPC 框架更是数量众多,难以计数,但是,一般的 RPC 框架和我们讨论的分布式服务框架还是具有相当大的距离,比如在远程调用的多协议、多序列化支持,完善的服务治理等等方面都有较多的缺失。也正是由于这种缺失,著名的 Apache Thrift 等框架在这里也可归为 RPC 框架,而主要构建在 Thrift 之上的 Finagle、Phantom 等框架更接近于完整的分布式服务框架(当然,Dubbo 其实也支持 Thrift,只是还不太完善)。
  有关沈理
  沈理,目前在当当网的架构部和技术委员会担任架构师,主要负责当当网的 SOA 实施(即服务化)以及分布式服务框架的开发。以前也有在 BEA、Oracle、Redhat 等外企的长期工作经历,从事过多个不同 SOA 相关框架和容器的开发。
  本文摘自:http://www.open-open.com/news/view/10d4ae9

  • 相关文档 - 更多

    1、Dubbo 用户指南.pdf
    2、DUBBO 开源.pptx
    3、Dubbo实现原理.doc
    4、Dubbo 功能介绍.pdf
    5、Dubbo 功能介绍.pdf
    6、Dubbo 框架扩展.pdf
    7、阿里 Dubbo 培训.pptx
    8、DUBBO 开源.pptx
    9、REST构架风格.doc
    10、REST,Web 服务,REST-ful 服务.pdf
  • 相关分享经验 - 更多

    1、Dubbo扩展:Dubbox
    2、支撑微博千亿调用的轻量级RPC框架:Motan
    3、Dubbox入门示例(注册服务器使用zookeeper)
    4、当当网分布式作业调度组件:Elastic-Job
    5、sharding-jdbc - 透明化数据库分库分表访问
    6、基于微服务的软件架构模式
    7、谈Dubbo服务框架
    8、dubbo学习
    9、让餐厅放心的云服务-雅座CRM技术解密
    10、Dubbo:来自于阿里巴巴的分布式服务框架
  • 相关讨论 - 更多

    1、REST会是SOA的未来吗?
    2、RESTful架构详解
    3、轻量级javaweb框架blade,简洁而强大
    4、javaweb框架unique-web
    5、极光IM有什么样优势
    6、为您的Web项目构建一个简单的JSON控制器
    7、8种Nosql数据库系统对比


运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-349324-1-1.html 上篇帖子: 2016年度,这40项IT技能年薪轻松超过10万美元 下篇帖子: JMS【二】--ActiveMQ简单介绍以及安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表