当前位置 : 主页 > 编程语言 > java >

Dubbo的整体架构设计及分层

来源:互联网 收集:自由互联 发布时间:2023-03-22
五个角色: 注册中心registry:服务注册与发现 服务提供者provider:暴露服务 服务消费者consumer:调用远程服务 监控中心monitor:统计服务的调用次数和调用时间 容器container:服务允许容

五个角色:

注册中心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):数据传输的序列化和反序列化

     

    上一篇:Error:java:无效的源发行版:12
    下一篇:没有了
    网友评论