Dubbo是一个来自阿里巴巴的开源分布式服务框架,当当根据自身的需求,为Dubbo实现了一些新的功能,包括REST风格远程调用、Kryo/FST序列化等等。并将其命名为Dubbox(即Dubbo eXtensions)。Dubbox主要的新功能包括:
一、支持REST风格远程调用(HTTP + JSON/XML)
dubbo支持多种远程调用方式,例如dubbo RPC(二进制序列化 + tcp协议)、http invoker(二进制序列化 + http协议,至少在开源版本没发现对文本序列化的支持)、hessian(二进制序列化 + http协议)、WebServices (文本序列化 + http协议)等等,但缺乏对当今特别流行的REST风格远程调用(文本序列化 + http协议)的支持。
dubbox基于非常成熟的JBoss RestEasy框架,在dubbo中实现了REST风格(HTTP + JSON/XML)的远程调用,以显著简化企业内部的跨语言交互,同时显著简化企业对外的Open API、无线API甚至AJAX服务端等等的开发。事实上,这个REST调用也使得Dubbo可以对当今特别流行的“微服务”架构提供基础性支持。 另外,REST调用也达到了比较高的性能,在基准测试下,HTTP + JSON与Dubbo 2.x默认的RPC协议(即TCP + Hessian2二进制序列化)之间只有1.5倍左右的差距。
REST的优点(摘自维基百科):
- 可更高效利用缓存来提高响应速度
- 通讯本身的无状态性可以让不同的服务器的处理一系列请求中的不同请求,提高服务器的扩展性
- 浏览器即可作为客户端,简化软件需求
- 相对于其他叠加在HTTP协议之上的机制,REST的软件依赖性更小
- 不需要额外的资源发现机制
- 在软件技术演进中的长期的兼容性更好
基于简单的文本格式消息和通用的HTTP协议,使REST具备极广的适用性,几乎所有语言和平台都对它提供支持,同时其学习和使用的门槛也较低。在dubbo中支持REST,可以为当今多数主流的远程调用场景都带来好处:
- 显著简化企业内部的异构系统之间的(跨语言)调用。此处主要针对这种场景:dubbo的系统做服务提供端,其他语言的系统(也包括某些不 基于 dubbo的java系统)做服务消费端,两者通过HTTP和文本消息进行通信。即使相比Thrift、ProtoBuf等二进制跨语言调用方 案,REST也有自己独特的优势(详见后面讨论)
- 显著简化对外Open API(开放平台)的开发。既可以用dubbo来开发专门的Open API应用,也可以将原内部使用的dubbo service直接“透明”发布为对外的Open REST API(当然dubbo本身未来最好可以较透明的提供诸如权限控制、频次控制、计费等诸多功能)
- 显著简化手机(平板)APP或者PC桌面客户端开发。类似于2,既可以用dubbo来开发专门针对无线或者桌面的服务器端,也可以将原内 部使用的 dubbo service直接“透明”的暴露给手机APP或桌面程序。当然在有些项目中,手机或桌面程序也可以直接访问以上场景2中所述的Open API。
- 显著简化浏览器AJAX应用的开发。类似于2,既可以用dubbo来开发专门的AJAX服务器端,也可以将原内部使用的dubbo service直接“透明”的暴露给浏览器中JavaScript。当然,很多AJAX应用更适合与web框架协同工作,所以直接访问dubbo service在很多web项目中未必是一种非常优雅的架构。
- 为企业内部的dubbo系统之间(即服务提供端和消费端都是基于dubbo的系统)提供一种基于文本的、易读的远程调用方式。
- 一定程度简化dubbo系统对其它异构系统的调用。可以用类似dubbo的简便方式“透明”的调用非dubbo系统提供的REST服务(不管服务提供端是在企业内部还是外部)
相关推荐
Dubbo分布式服务框架
在这个"Dubbo分布式服务框架入门2"的学习资料中,我们将深入探讨如何在实际开发中使用Dubbo来构建分布式系统。 首先,我们要理解“发布服务”的概念。在第三节(Dubbo发布服务)中,你会了解到如何将一个本地的服务...
Dubbo分布式服务框架 于飞PPT 最近一直在学习dubbo,对整理框架有一个基本认识,后期还是需要自己钻研
参考博客地址:http://blog.csdn.net/u013142781/article/details/50387583 文件包含: 1.服务提供者 2.服务消费者 3.dubbo-admin-2.5.7.war 4.zookeeper-3.4.9.tar.gz
一套完整的Dubbo分布式服务框架视频教程(18G+),内部另有strom从入门到精通视频教学、大数据strom实战项目教学、mycat视频教学、Zookeeper从入门到精通(开发详解,案例实战,Web界面监控)、小象学院-Redis从入门...
Dubbo 分布式服务框架
《Dubbo分布式服务框架开发者学习文档》是一份深入解析Dubbo技术体系的重要资料,它涵盖了Dubbo的核心功能和实现机制,对于理解并掌握这个流行的Java分布式服务框架具有极高的价值。Dubbo,作为阿里巴巴开源的一款高...
Dubbo分布式服务架构,对于研究大型Web服务器的并发技术的同学们有帮助。
【Dubbo分布式服务框架入门1】 Dubbo是一个高性能、轻量级的开源Java RPC框架,由阿里巴巴开发并维护,旨在提供简单、高效的服务发现和调用能力,促进微服务架构的发展。Dubbo的核心功能包括服务注册与发现、远程...
微服务架构的分布式事务解决方案 Dubbo分布式服务框架视频教程+redis+zookeeper+storm+mycat 资源为百度云连接+密码
public Boolean CheckLogin(String username, String password) 服务端代码要求连接Mysql数据库进行数据校验; 客户端要求:用RMI技术进行远程过程调用实现登录过程。根据远程返回值分别进入“登录成功”或“登录...
分布式框架在现代软件开发中扮演着至关重要的角色,特别是在大型企业级应用中。Dubbo,作为阿里巴巴开源的一款高性能、轻量级的Java RPC框架,它致力于解决服务治理的问题,包括服务发现、服务调用、负载均衡等。本...
文件是网盘链接地址,2018.7.4上传,链接一直可用 本套视频为dubbo分布式系统架构实战教学视频
大规模服务化之前,应用可能只是通过RMI或Hessian等工具,简单的暴露和引用远程服务,通过配置服务的URL地址进行调用,通过F5等硬件进行负载均衡。 (1) 当服务越来越多时,服务URL配置管理变得非常困难,F5硬件负载...
使用springboot+mybatis,集成dubbo分布式框架,注册中心使用zookeeper,数据库使用mysql。项目是聚合项目,可发布到tomcat中启动,配置好注册中心zookeeper和mysql后,即可启动访问消费者platform_web调用platform_...
用dubbo分布式服务框架实现2、实现对登录提交的用户名密码进行远程校验。 public Boolean CheckLogin(String username, String password)3、服务端代码要求连接Mysql数据库进行数据校验;
最新Dubbo的分布式架构视频教程最新Dubbo的分布式架构视频教程