Dubbo的整体架构设计及分层
五个角色:
注册中心registry:服务注册与发现
服务提供者provider:暴露服务
服务消费者consumer:调用远程服务
监控中心monitor:统计服务的调用次数和调用时间
容器container:服务允许容器
调用流程:
- container容器负责启动,加载。运行provider
- provide在启动时,想registry中心注册自己提供的服务
- consumer在启动时,向registry中心订阅自己所需的服务
- registry返回服务器提供者列表给consumer,如果有变更,regi将基于长连接推送变更数据给consumer
- consumer调用provider服务,基于负载均衡算法进行调用
- consumer调用provider的统计,基于短链接定时每分钟一次统计到monitor
分层:
接口服务层(Service):面向开发者,业务代码,接口,实现等
配置层(Config):对外配置接口,及ServiceConfig和ReferenceConfig为中心
服务代理层(Proxy):对生产者和消费者,dubbo都会产生一个代理类封装调用细节,业务层对远程调用无感
服务注册层(Registry):封装服务地址的注册和发现,以服务URL为中心
路由层(Cluster):封装多个提供者的路由和复杂均衡,并桥接注册中心
监控层(Monitor):RPC调用次数和调用时间监控
远程调用层(Protocal):封装RPC调用
信息交换层(Exchange):封装请求响应模式,同步转异步
网络传输层(Transport):抽象mina和netty为统一接口,统一网络传输接口
数据序列化层(Serialize):数据传输的序列化和反序列化
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 记一次.NET内存居高不下排查解决与启示
· DeepSeek 开源周回顾「GitHub 热点速览」
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了