为什么要使用dubbo

dubbo是什么?
dubbo是一个分布式服务框架,致力于提供高性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案
dubbo特点
1.远程通讯
提供透明化的远程方法调用,支持多协议支持,协议一共有六种.底层默认是dubbo协议,采用netty协议,也就是长连接nio协议
2.集群容错
软负载均衡,失败容错,地址路由,动态配置等集群支持
3.自动发现
基于注册中心目录服务,使服务消费方能动态的查找服务提供方,支持平滑减少或者增加机器.默认的zookeeper注册中心

为什么使用

咱们从架构演进开始分析
[dubbo]浅谈dubbo-简介_数据库

举个例子哈
1.公司非常小,系统也很小,比如开发人员也就两三个人,是不是很着急,先上线,看看用户的反应是啥,如果市场需要就继续干,不需要就下线了
这个时候,一般就会把多个模块融合在一个模块中,也就是一个系统,一个数据库,所有程序都是在一个war包中,是一个单独的进程. 如图:
[dubbo]浅谈dubbo-简介_数据库_02

2.后来发现,这个系统大家还认可,这个系统也达到一个规模了,访问量随着应用也越来越多,应用之间交互就不可避免了,就需要把核心业务抽取出来,作为独立的服务运行,逐渐形成稳定的服务群体,拿咱们的网上商城来说:电商系统,商品,订单,支付数据库也一一对应分开了.这里就有点微服务的意思了(微服务架构就是按照业务,将服务拆分到不同的程序(进程),单独部署,发布。)
[dubbo]浅谈dubbo-简介_数据库_03

3.公司越来越大,上市了,系统越来越多,服务也越来越多,从原来的几个,几十个,直接上升到几百个,为了扩大市场,系统功能越来越多,数据也越来越多,服务越来越多,这样就暴露一个问题,服务的容量评估,小服务资源的浪费,服务ip的暴露,管理相当麻烦,这就升级了soa架构,因为soa提供了服务自动发现,治理的功能,如果没有,几百个服务,是很难管理的.

[dubbo]浅谈dubbo-简介_微服务_04

服务之间调用都是通过http,那么对于服务消费者,如何发现服务的存在,如何调用服务,调用服务的协议如何规定,没有得到返回如何重试。 这就是Dubbo所解决的问题,也是它可以作为框架的原因。

下篇博客讲一下dubbo的常用标签