分析&回答
Dubbo 的两大设计原则
- Dubbo 使用“
微内核+插件
”的设计模式。内核只负责组装插件(扩展点),Dubbo 的功能都是由插件实现的,无限开放性设计架构,也就是 Dubbo 的所有功能点都可被用户自定义扩展、增强、替换。(SPI了解) - 采用 URL 作为配置信息的统一格式,所有扩展点都通过传递 URL 携带配置信息。
Dubbo 的三大领域模型
- Protocol 服务域 :是 Invoker 暴露和引用的主功能入口,它负责 Invoker 的生命周期管理。
- Invoker 实体域 :是 Dubbo 的核心模型,其它模型都向它靠拢,或转换成它,它代表一个可执行体,可向它发起 invoke 调用,它有可能是一个本地的实现,也可能是一个远程的实现,也可能一个集群实现。
- Invocation 会话域 :它持有调用过程中的变量,比如方法名,参数等。
Dubbo 的四大组件
- Provider :服务提供者。
- Consumer :服务消费者。
- Registry :服务注册与发现的中心,提供目录服务。
- Monitor :服务监控,统计服务的调用次数、调用时间等信息的日志服务,并可以对服务设置权限、降级处理等,称为服务管控中心。
Dubbo 的十层架构
反思&扩展
为什么dubbo用url不用json?
个人理解,dubbo的应用场景涉及各种通信协议,url更契合这种通信场景,而json通用性太强了,用的话还要定义各种key,数据量会更大。
喵呜面试助手: 一站式解决面试问题,你可以搜索微信小程序 [喵呜面试助手] 或关注 [喵呜刷题] -> 面试助手 免费刷题。如有好的面试知识或技巧期待您的共享!