掌握Dubbo:框架概况及基本工作流程

在上一篇在上一篇Dubbo主题文章,也是作者分享的第一篇Duboo文章,介绍了SPI让大家提前掌握duboo中一个高频出现的技术。接下来,我们要回归到基础,和大家一起了解这个Duboo这个框架的概况和基本工作流程。

一、Duboo概况

Duboo是一个出现比较早的分布式框架,比Spring cloud要早。它是由阿里巴巴研发出的一款开源的基于Java语言的RPC分布式服务框架,主要目的是为了提升系统性能、提供透明化的RPC远程服务调用方案,以及SOA服务治理方案。

因其优秀的性能,被国内很多大厂封装成自己的分布式服务框架的内核,duboo在当中充当远程服务调用的核心模块。

深入对duboo的使用,大家可以了解到这个框架的核心主要有三部分:

1、远程通讯

duboo是基于TCP长连接的通讯方式,为用户提供多种NIO框架封装(如netty和mina)。同时线程模型和序列化方式也有多种选择。在追求代码API零入侵的前提下,用户只需简单的配置,就可以进行透明的远程方法调用(就像调本地方法一样去调用远程方法)。 

2、集群容错

以接口为基础的透明远程调用方法,为用户提供提供多种协议的支持、失败容错、地址路由和动态配置等集群支持功能,在内网情况下可以实现软负载均衡,减少建设成本以及单点问题。

3、自动发现

基于注册中心目录服务,让服务的注册和发现更加灵活,不需要再写死在相关的服务上面。而注册中心是基于接口名来查询服务提供者的IP地址,可以动态添加和删除异常的服务提供者。

二、Duboo基本工作流程

了解了duboo的作用和核心功能后,我们再继续去了解它的工作流程。

1、架构

 duboo的基本架构如下图,包含了5个节点角色,它们之间的通讯包括三大类型:初始化、同步通讯和异步通讯。

我们可以顺着通讯的序号,了解到整个框架由容器启动开始,然后把服务提供者注册到注册中心,服务调用者会订阅相关服务并获取到服务注册信息缓存到本地。在服务发生变化时,注册中心会通知给服务调用方。

2、节点角色和调用关系

节点角色作用调用关系
Container服务运行容器负责启动,加载,运行服务提供者
Provider暴露服务的服务提供方在启动时,向注册中心注册自己提供的服务
Registry服务注册与发现的注册中心把服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送变更数据给消费者
Consumer调用远程服务的服务消费方从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用
Monitor统计服务的调用次数和调用时间的监控中心服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心

3、节点连通要点

     a、服务提供者和消费者只在启动时与注册中心交互,注册中心不转发请求。

     b、服务提供者和消费者对服务调用次数和时间的统计先在内存汇总,后每分钟一次发送到监控中心服务器,并以报表展示。

    c、注册中心,服务提供者,服务消费者三者之间均为长连接

   d、注册中心和监控中心都是可选的,服务消费者可以直连服务提供者

    

以上就是作者为大家提供的duboo入门介绍,进行了框架的概述以及架构中各个节点的作用和通信要点,帮助大家对框架有个大致的认识。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值