首页 > 代码库 > Dubbo框架应用之(一)--服务体系

Dubbo框架应用之(一)--服务体系

    

       Dubbo 是阿里巴巴公司开源的一个高性能优秀的服务框架,使得应用可通过高性能的 RPC 实现服务的输出和输入功能,能够和 Spring框架无缝集成,也是一个很全面的SOA基础框架。其是阿里巴巴SOA服务化治理方案的核心框架。每天为2,000+个服务提供3,000,000,000+次訪问量支持,并被广泛应用于阿里巴巴集团的各成员网站.


下面的四个阶段能够用官方的Dubbo架构路线图来概括,

技术分享



主要核心部件:

  • Remoting: 网络通信框架,实现了 sync-over-async 和 request-response 消息机制.

  • RPC: 一个远程过程调用的抽象,支持负载均衡、容灾和集群功能

  • Registry: 服务文件夹框架用于服务的注冊和服务事件公布和订阅


工作原理

技术分享


  • Provider

    • 暴露服务方称之为“服务提供者”。

  • Consumer

    • 调用远程服务方称之为“服务消费者”。

  • Registry

    • 服务注冊与发现的中心文件夹服务称之为“服务注冊中心”。

  • Monitor

    • 统计服务的调用次调和调用时间的日志服务称之为“服务监控中心”。


(1) 连通性:

  • 注冊中心负责服务地址的注冊与查找,相当于文件夹服务,服务提供者和消费者仅仅在启动时与注冊中心交互,注冊中心不转发请求,压力较小

  • 监控中心负责统计各服务调用次数,调用时间等,统计先在内存汇总后每分钟一次发送到监控中心server,并以报表展示

  • 服务提供者向注冊中心注冊其提供的服务,并汇报调用时间到监控中心,此时间不包括网络开销

  • 服务消费者向注冊中心获取服务提供者地址列表。并依据负载算法直接调用提供者。同一时候汇报调用时间到监控中心,此时间包括网络开销

  • 注冊中心,服务提供者。服务消费者三者之间均为长连接。监控中心除外

  • 注冊中心通过长连接感知服务提供者的存在,服务提供者宕机。注冊中心将马上推送事件通知消费者

  • 注冊中心和监控中心所有宕机,不影响已执行的提供者和消费者,消费者在本地缓存了提供者列表

  • 注冊中心和监控中心都是可选的,服务消费者能够直连服务提供者



(2) 健状性:

  • 监控中心宕掉不影响使用,仅仅是丢失部分採样数据

  • 数据库宕掉后,注冊中心仍能通过缓存提供服务列表查询,但不能注冊新服务

  • 注冊中心对等集群,随意一台宕掉后,将自己主动切换到还有一台

  • 注冊中心所有宕掉后。服务提供者和服务消费者仍能通过本地缓存通讯

  • 服务提供者无状态。随意一台宕掉后,不影响使用

  • 服务提供者所有宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复




(3) 伸缩性:

  • 注冊中心为对等集群。可动态添加机器部署实例,所有client将自己主动发现新的注冊中心

  • 服务提供者无状态,可动态添加机器部署实例,注冊中心将推送新的服务提供者信息给消费者


接下里依据项目中的应用会层层深入……


技术分享

Dubbo框架应用之(一)--服务体系