dubbo是一个分布式的服务框架,致力于提升性能和透明化的RPC远程服务调用方案,以及SOA服务治理方案。web
简言之,dubbo就是一个服务框架,若是没有分布式的需求,其实不须要用的,只有分布式的时候,才须要dubbo这样的分布式框架spring
本质里,dubbo就是个服务调用的东东。。网络
说白了就是个远程服务调用的分布式框架(告别webservice模式中的wsdl,以服务者与消费者的方式在dubbo上注册)多线程
dubbo能够和spring无缝集成架构
1)透明化的远程方法调用,就像调用本地方法同样,只需简单配置,没有任何API侵入负载均衡
2)软负载均衡及容错机制,可在内网替代F5等硬件负载均衡器,下降成本,减小单点框架
3)服务自动注册与发现,再也不须要写死服务提供方地址,注册中心基于接口名查询服务提供者的IP地址,而且可以平滑添加或删除服务提供者async
4)dubbo采用全spring配置方式,透明化接入应用,对应用没有任何API侵入,只需spring加载dubbo的配置便可,dubbo基于spring的schema扩展进行加载分布式
dubbo的核心:性能
1)远程通信:提供多种基于长链接的NIO框架封装,包括多线程模型,序列号,以及“请求-响应”模式的信息交换方式
2)集群容错:提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持
3)自动发现:基于注册中心目录服务,使服务消费方可以动态查找服务提供方,使地址透明,使服务提供方能够平滑增长或减小机器
dubbo主要核心部件
Remoting:网络通讯框架,实现了sync-over-async和request-response消息机制。
RPC:一个远程过程调用的抽象,支持负载均衡、容灾和集群功能。
Registry:服务目录框架用于服务的注册和服务事件发布和订阅。
dubbo核心架构图: