目录
Dubbo是阿里巴巴开发的一个开源的高性能RPC调用框架,致力于提供高性能和透明化的RPC远程调用服务解决方案
Dubbo基础
Dubbo架构图
节点角色说明
节点角色 | 节点说明 |
---|---|
Provider | 服务提供者。负责暴露提供的服务,并将服务注册到服务注册中心 |
Consumer | 服务消费者。通过RPC远程调用服务提供者提供的服务 |
Registry | 服务注册中心。负责服务注册与发现 |
Monitor | 监控中心。统计服务的调用次数和调用时间 |
Container | 服务运行容器。 |
调用关系说明
0.start:container服务容器负责启动、加载、运行服务提供者
- register:Provider服务提供者在启动时会将自己提供的服务注册到服务注册中心
- subscribe:Consumer服务消费方在启动时会去服务注册中心订阅自己需要的服务的地址列表,然后服务注册中心异步把消费者需要的地址列表返回,服务消费者根据路由规则和负载均衡算法选择一个服务提供者进行调用
- notify:当消费者订阅的服务发生变更时,会触发通知
- invoke:具体调用
- count:在内存中统计调用次数和调用时间,每隔一分钟将统计数据发送到监控中心
Dubbo高级
Dubbo分层架构概述
分层:每一层各司其职,专注于实现本层的业务逻辑;上层依赖下层提供的功能,下层的改变对上层透明;每一层都是可被替换的组件
分层说明:
-
Service和Config为API接口层:用于让Dubbo使用方方便地发布服务和引用服务
-
Proxy服务代理层:主要对消费端使用的接口进行代理,把本地服务透明的转为远程服务;对提供方的接口实现类进行代理,把实现类转换为Wrapper类(目的:减少反射调用)
-
Registry服务注册中心层:主要功能是封装服务地址的注册与发现逻辑
-
Cluster路由层&#