dubbo是一个RPC框架,应用方像使用本地service一样使用dubbo service。dubbo体系架构
上图中的角色:
最重要的是consumer、registry和provider
consumer:服务调用者
provider:服务提供者
registry:供provider注册服务和consumer发现服务
monitor:监控调用过程的一些参数,比如:调用次数count
container:容器,dubbo可以不依赖web容器工作
dubbo部署:
registry(生产环境一般使用zookeeper)单独部署
dubbo自带了一个admin管理后台单独部署
接着就是应用系统提供服务和调用服务
dubbo的基本工作过程:
- registry部署好后,就可以编写配置自己要提供的服务
- dubbo会将service export到本地,并且将服务相关信息注册到registry
- 编写服务调用方,dubbo会根据配置的registry地址从registry订阅对应的服务
- dubbo根据从registry获取到的provider的信息构造调用对象invoker
- 在应用发起调用的时候consumer会直接通过网络向provider发调用信息
- provider在接收到调用消息后,根据请求信息调用本地export出去的服务
- dubbo将调用结果通过网络发送给consumer,consumer在收到返回消息后解析为返回值给调用方
一些说明:
本次源码学习使用tomcat容器的web项目
dubbo版本:2.4.11
spring:4.3.2
tomcat:7.0.75