参考链接:https://yq.aliyun.com/articles/377500?spm=5176.10695662.1996646101.searchclickresult.1440b0dK6K0Z4
官方文档:http://dubbo.io/
Dubbo的简单介绍
Dubbo是一个分布式服务框架,架构如图:
节点角色说明:
Provider: 暴露服务的服务提供方。
Consumer: 调用远程服务的服务消费方。
Registry: 服务注冊与发现的注冊中心。
Monitor: 统计服务的调用次调和调用时间的监控中心。
Container: 服务执行容器。
调用关系说明:
0. 服务容器负责启动,载入,执行服务提供者。
1. 服务提供者在启动时,向注冊中心注冊自己提供的服务。
2. 服务消费者在启动时。向注冊中心订阅自己所需的服务。
3. 注冊中心返回服务提供者地址列表给消费者,假设有变更。注冊中心将基于长连接推送变更数据给消费者。
4. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,假设调用失败。再选还有一台调用。
5. 服务消费者和提供者,在内存中累计调用次数和调用时间。定时每分钟发送一次统计数据到监控中心。
Dubbo提供了非常多协议,Dubbo协议、RMI协议、Hessian协议,我们查看Dubbo源码,有各种协议的实现,如图所看到的:
我们之前没用Dubbo之前时,大部分都使用Hessian来使用我们服务的暴露和调用,利用HessianProxyFactory调用远程接口。