先放一个官方文档的url:http://dubbo.apache.org/zh-cn/docs/user/preface/background.html,看过一些书,上面的内容和文档的差不多,所以可以好好研究下文档
这里盗取一下官方文档的图片:
其实简单的说,就是一些 功能模块对外暴露接口,在注册中心(registry)注册,消费者(往往是客户端)调用接口,然后通过注册中心找服务,然后调用,基本就是这么一个流程;
使用dubbo之前:回想一下,我们一个项目分模块,假设有3个模块,A~C,在没有使用dubbo之前,B模块要调用A模块中的方法,那么可以在pom中引入依赖,那么实际上,在模块B中这个时候可以看到A模块的源码
dubbo之后:这个时候我们使用了dubbo,我们可以把B要调用A的功能的接口做成一个模块C,也就是说C模块中只有接口,没有实现,A模块去实现了这类的接口,也就是有具体的实现类,然后我们在B模块和A模块中都导入了对模块C的依赖,B模块调用接口调用功能,这个时候从B模块的角度来说,是看不到接口的实现的,(其实看上去有点像前后端分离的技术)
这样使用,我们可以对消费者屏蔽接口的实现,并且我们可以把某些核心功能提取出来,单独部署,然后消费者通过注册中心来找到服务,并且停供了一个管理平台,便于开发者管理,可在平台上设置权重来实现负载均衡和容错;