架构演变
垂直应用架构MVC
分布式服务架构RPC
- 页面与业务的分离(页面经常发生改变, 设计模式的体现)
- 页面所在的服务器和业务所在的服务器可能不在同一台服务器上, 此时需要在服务与服务之间的调用. 不同服务器之间的调用成为远程过程调用RPC.
客户端A->客户端A的邮局->客户端B的邮局->客户端B
影响RPC框架的效率
- 建立连接的速度
- 序列化和反序列化的速度
RPC: 由A服务器中调用B服务器中的一段功能
灰度发布: 新服务逐步替代旧服务的过程
流动计算架构
Dubbo原理
标签解析
每一个标签对应一个实体类,例如 service 标签对应 ServiceBean,consumer 标签对应 ConsumerConfig
DubboNamespaceHandler 命名空间中创建每一个预定义好的 DubboBeanDefinitionParser
通过标签解析器来解析对应的标签,即 BeanDefinitionParser
服务暴露流程
ServiceBean中的doExportUrl()
@DubboService 注解对应 service 标签,标签解析器和注解解析器本质上是一回事
通过一张表来进行管理,
服务引用流程
@DubboReference 注解对应 reference 标签,而 reference 标签中含有各种属性或子标签,因此 reference 也对应这一个实体类,即 ReferenceBean
refer() 方法