前世今生:
Dubbo源于阿里的淘宝网开源的分布式的服务架构,致力于提供高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。淘宝网将其开源之后,得到了很多的拓展和支持(比较出名的有:当当网的扩展版本dubbox,京东的扩展版本jd-hydra等)
Dubbox(即Dubbo eXtensions)是当当网Fork基于dubbo2.x的升级版本,兼容原有的dubbox。其中升级了zookeeper和spring版本,并且支持restfull风格的远程调用。。
版本:
Dubbo目前已停止更新;
Dubbox目前还在更新。
说明:dubbox和dubbo 2.x是兼容的,
没有改变dubbo的任何已有的功能和配置方式(除了升级了Spring之类的版本)。
据说淘宝网dubbo与一个非开源的框架HSF有争执,导致dubbo的团队已经解散了,但是其扩展的版本dubbox却得到不断的发展(升级更新);
<!--------升级详情--------|--------------------
- dubbox-2.8.0:该版本已经在生产环境中使用,主要支持REST风格远程调用、支持Kryo和FST序列化、升级了Spring和Zookeeper客户端、调整了demo应用等等
- dubbox-2.8.1:主要支持基于嵌入式tomcat的http-remoting,优化了REST客户端性能,在REST中支持限制服务端接纳的最大HTTP连接数等等
- dubbox-2.8.2:
- 支持REST中的HTTP logging,包括HTTP header的字段和HTTP body中的消息体,方便调试、日志纪录等等
- 提供辅助类便于REST的中文处理
- 改变使用@Reference annotation配置时的异常处理方式,即当用annotation配置时,过去dubbo在启动期间不抛出依赖服务找不到的异常,而是在具体调用时抛出NPE,这与用XML配置时的行为不一致。
- 较大的充实了Dubbo REST的文档
- dubbox-2.8.3:
- 在REST中支持dubbo统一的方式用bean validation annotation作参数校验(沈理)
- 在RpcContext上支持获取底层协议的Request/Response(沈理)
- 支持采用Spring的Java Config方式配置dubbo(马金凯)
- 在Dubbo协议中支持基于Jackson的json序列化(Dylan)
- 在Spring AOP代理过的对象上支持dubbo annotation配置(Dylan)
- 修正Dubbo管理界面中没有consumer时出现空指针异常(马金凯)
- 修正@Reference annotation中protocol设置不起作用的bug(沈理)
- 修正@Reference annotation放在setter方法上即会出错的bug(Dylan)
---------/>
嵌入:
dubbo:嵌入式Jetty
dubbox:基于嵌入式tomcat实现dubbo的 HTTP remoting体系(即dubbo-remoting-http)
对Servlet API的支持:
dubbo:2.5
dubbox:升级到3.1
序列化:
dubbo:
dubbox:基于Dubbo默认的RPC协议添加新的JSON序列化实现;
支持基于Kryo和FST的Java高效序列化实现;
Zookeeper注册中心:
dubbo:Dubbo提供了Zookeeper注册中心,在整个Dubbo的设计里面充分考虑到了各类用户的需求,一些底层的通讯或者是信息存储都提供有大量的不同的存储方案;
dubbox:升级ZooKeeper客户端到最新版本;
使用场景:
dubbo:使用Dubbo的RPC调用方式,服务间仍然会存在API强依赖;
dubbox:相对于Dubbo支持了REST风格的原创调用(HTTP +JSON/XML);
-------------------------------------------------------
------简言之(dubbox基于dubbo的升级):
-------------------
支持REST风格远程调用(HTTP + JSON/XML);
支持基于Kryo和FST的Java高效序列化实现;
支持基于Jackson的JSON序列化;
支持基于嵌入式Tomcat的HTTP remoting体系;
升级Spring至3.x;
升级ZooKeeper客户端;
支持完全基于Java代码的Dubbo配置;
-------------------------------------------------
附录:
Dubbo:
Dubbox:
当当网dubbox学习参考文档:
http://dangdangdotcom.github.io/dubbox/
----------------------