简介
Dubbo是阿里巴巴开源的一个高性能的分布式RPC框架,整个框架的核心原理来源于生产者与消费者的运作模型;框架的核心分4大部分:
1. 服务注册中心
注册中心主要用于保存生产者消费者信息;生产者将自己的服务保存在注册中心,消费者通过注册中心寻找可用的生产者。
2. 服务提供者(生产者)
服务提供者,传统的软件架构中的Service、Dao层;主要实现种类多样、多元化的业务需求,并通过注册中心提供服务接口给其他系统集成。3. 服务消费者(消费者)
服务消费者,传统软件架构中的Controller、Service层;作为Controller,则主要是接参、校验,响应结果;作为Service则是整合其他微服务实现自己的多元化业务。
4. 服务监控中心
监控中心主要用于运维;可视化的界面直观的了解各个微服务的情况。
架构
节点角色说明
节点 | 角色说明 |
---|---|
Provider | 暴露服务的服务提供方 |
Consumer | 调用远程服务的服务消费方 |
Registry | 服务注册与发现的注册中心 |
Monitor | 统计服务的调用次数和调用时间的监控中心 |
Container | 服务运行容器 |
调用关系说明
- 服务容器负责启动,加载,运行服务提供者。
- 服务提供者在启动时,向注册中心注册自己提供的服务。
- 服务消费者在启动时,向注册中心订阅自己所需的服务。
- 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者。
- 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
- 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。