Dubbo简介
ps:第一次写这个,有什么不对的地方请大家多多指教!
前言
学习一个(框架/技术),个人认为首重点内容先要了解这个(框架/技术)是做什么的?有什么优/缺点?

一、什么是Dubbo?

Dubbo是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,可以和 Spring框架无缝集成。

Dubbo核心部分:

1、Remoting:远程通讯,提供对多种NIO框架抽象封装,包括“同步转异步”和“请求-响应”模式的信息交换方式。
2、Cluster: 服务框架,提供基于接口方法的透明远程过程调用,包括多协议支持,以及软负载均衡,失败容错,地址路由,动态配置等集群支持。
3、Registry: 服务注册中心,基于注册中心目录服务,使服务消费方能动态的查找服务提供方,使地址透明,使服务提供方可以平滑增加或减少机器。

二、Dubbo能做什么?

了解dubbo能做什么之前,让我们先了解一下WebApp技术发展历程:

原来的web项目,又称All On One也就是所有的代码全部写在一个类里。

例:控制跳转代码、业务逻辑代码、数据访问代码全部放在一个类里。

dubbo架构 分布式事务_dubbo架构 分布式事务


这种写法容易使一个类变得臃肿,维护起来效率极差。一般来说这种代码看多了以后整个人都不怎么好了。

我们都喜欢看的是思维逻辑清晰、代码排布简洁的一些优质代码,所以MVC就诞生了。Mvc相信大家都应该有所了解。在这里就简单介绍一下:

Mvc将我们臃肿的代码分层化,使得我们寻找代码起来不在那么困难

例:Model层放程序数据逻辑代码、View层放数据处理的显示代码、Controller层放控制跳转代码

dubbo架构 分布式事务_dubbo_02


但是Mvc就没有缺点吗?没有一种技术和框架是万能的,只是适合不适合。对于当今互联网大数据时代,mvc就暴露出一个缺点。那就是mvc模式架构的项目都是在同一计算机里。

如果这个WEB项目的访问量很大,会有会高的并发。这时候一台计算机显然是不够看的。把系统分开,使用多台计算机部署,从而提高并发吞吐量,那么多台计算机怎么相互调用?当web开发进入了RPC(远程过程调用)时代,这个问题得到了解决。从集中式系统改变为分布式系统能提高并发吞吐量,将前后端分离,分别部署在不同的计算机上可以做到

dubbo架构 分布式事务_服务框架_03