dubbo工作原理(3)
dubbo主要核心部件
Remoting:网络通信框架,实现了sync-over-async和request-response消息机制。
RPC:一个远程过程调用的抽象,支持负载均衡、容灾和集群功能。
Registry:服务目录框架用于服务的注册和服务事件发布和订阅。(类似第一篇文章中的点菜宝)
dubbo架构
Provider: 暴露服务的提供方。
Consumer:调用远程服务的服务消费方。
Registry: 服务注册中心和发现中心。
Monitor: 统计服务和调用次数,调用时间监控中心。(dubbo的控制台页面中可以显示)
Container:服务运行的容器。
调用关系:
0、服务器负责启动,加载,运行提供者(例如在tomcat容器中,启动dubbo服务端)。
1、提供者在启动时,向注册中心注册自己提供的服务。
2、消费者启动时,向注册中心订阅自己所需的服务。
3、注册中心返回提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
4、消费者,从远程接口列表中,调用远程接口,dubbo会基于负载均衡算法,选一台提供者进行调用,如果调用失败则选择另一台。
5、消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。(可以在dubbo的可视化界面看到)