1.什么是dubbo?
随着大型网站分布式架构越来越主流,很多公司采用了dubbo作为远程通信服务调用框架,同时也有部分公司采用SpringCloud,而dubbo底层采用的是TCP进行通信,SpringCloud底层则采用的是HTTP协议进行通信,说白了,dubbo其实就是因为分布式的存在而存在,也就是告别了之前web service的调用模式,引进了消费者跟开发者。
2.dubbo的架构图
来自dubbo官网的架构图
Container: 服务运行容器。
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注册与发现的注册中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
init: 初始化
async: 异步处理
sync: 同步处理
3.dubbo架构图解析
当Container容器启动的时候,进行初始化,这个时候Provider将服务注册到Register中,同时Consumer到Register订阅服务,如果没有订阅到自己想要的服务,它会不断尝试订阅。而当新的服务注册到Register后,Register会将服务通过notify的方式通知消费者Consumer。
Consumer自然是消费Prodiver所提供的服务,通过invoke的方式,可以认为是通过代理的方式进行调用。
Monitor作为监控平台,我们可以看到Consumer跟Prodiver都会通过异步的方式发送一些消费给Monitor,Consumer跟Prodiver会将信息存放到本地。也是用来统计服务的调⽤次数和调⽤时间的监控中⼼。
本文原文地址:https://mp.weixin.qq.com/s/Jy59_4cOITDH6cKMF0bhuQ