Dubbo简介
一、Dubbo的简介
1. Dubbo是阿里巴巴开源的一款解决微服务通信的框架, 它最大的特点是按照分层的方式来架构 ,使用这种方式可以使各个层之间解耦合
2. Dubbo的模型非常的简单,要么是服务提供方,或者服务消费方
3. Dubbo提供了三大核心能力:
- 面向接口的远程方法调用
- 智能容错,负载均衡
- 服务注册和发现
4. 特性一览
- 面向接口代理的高性能RPC调用
- 服务自动注册与发现
- 运行期流量调度
- 智能负载均衡
- dubbo内部支持多种负载均衡策略
- 高度可扩展能力
- 可视化的服务治理与运维
- dubbo-admin 控制面板
Dubbo 社区目前主力维护的有 2.6.x 和 2.7.x 两大版本,其中,
- 2.6.x 主要以 bugfix 和少量 enhancements 为主,因此能完全保证稳定性
- 2.7.x 作为社区的主要开发版本,得到持续更新并增加了大量新 feature 和优化,同时也带来了一些稳定性挑战
二、Dubbo的前世今生
- 2011年10月27日:由阿里巴巴开源,由于Dubbo在阿里内部经过广泛的业务验证 ,在很短的时间内,被许多的互联网公司所使用,如: 网易、京东、新浪、当当等等
- 在2012年时已经每天为**2000+**个服务提供==3,000,000,000+==次访问量支持 !
- 2014年10月:但是由于阿里内部的策略变化Dubbo在 2014年10月 停止维护!
- 随后部分互联网公司公开了自行维护的Dubbo,比如著名的当当Dubbox 新浪 Motan 等…
- 2017年9月: 经过三年的沉寂,阿里巴巴宣布重启 Dubbo 项目,并决定长期进行维护,随后Dubbo开始了密集的更新
- 2018年2月:阿里宣布将Dubbo 捐献给 Apache基金会 Dubbo成为Apache孵化器项目
三、Dubbo与Dubbox的区别
Dubbo官网: http://dubbo.io/
Dubbox官网: https://github.com/dangdangdotcom/dubbox
1. Dubbox(即Dubbo eXtensions) 是当当网Fork基于dubbo2.x的升级版本,兼容原有的dubbox。其中升级了zookeeper和spring版本,并且支持restFul风格的远程调用。。
2. 嵌入:
dubbo:嵌入式Jetty
dubbox:基于嵌入式tomcat实现dubbo的 HTTP remoting体系(即dubbo-remoting-http)
3. 对Servlet API的支持:
dubbo:2.5
dubbox:升级到3.1
4. Zookeeper注册中心:
dubbo:Dubbo提供了Zookeeper注册中心,在整个Dubbo的设计里面充分考虑到了各类用户的需求,一些底层的通讯或者是信息存储都提供有大量的不同的存储方案;
dubbox:升级ZooKeeper客户端到最新版本;以修正老版本中包含的bug。
5. 使用场景:
dubbo:使用Dubbo的RPC调用方式,服务间仍然会存在API强依赖;
dubbox:相对于Dubbo支持了REST风格的原创调用(HTTP +JSON/XML);
6. 升级Spring
将dubbo中Spring由2.x升级到目前最常用的3.x版本,减少版本冲突带来的麻烦。
配置、序列化、管理界面等等的bug。
7. 支持基于Jackson的JSON序列化:
基于业界应用最广泛的Jackson序列化库,为Dubbo默认的RPC协议添加新的JSON序列化实现。