在当今微服务盛行的大环境下,设计一套高并发、高可扩展、自动容错和高可用的分布式系统无疑是离不开一套优秀的RPC框架的。Dubbo是阿里开源的RPC框架,在市场上众多RPC框架中是最受欢迎的,各大公司也都争相拥抱和使用。
Dubbo的架构图
图片来自Dubbo官网,各个角色说明如下:
| 角色 | 角色说明 |
|---|---|
| Provider | 暴露服务的服务提供方 |
| Container | 服务运行容器 |
| Consumer | 调用远程服务的服务消费方 |
| Registry | 服务注册与发现的注册中心 |
| Monitor | 统计服务的调用次数和调用时间的监控中心 |
Provider在启动的时候会向注册中心注册元数据(IP/端口之类的),Consumer在启动的时候会向注册中心订阅(第一次订阅会拉去全部数据)服务方的元数据,注册中心发生数据变化的时候,会推送给订阅的Consumer。在获取到服务方的元数据之后可以进行RPC调用,在RPC调用后会向监控中心上报统计信息(比如并发数和调用的接口),开发人员可以在监控中心看到服务的调用情况。