Dubbo框架小结

     之前项目中使用的是Dubbo,只是做了简单的了解,本次接触新项目使用Dubbox,一起来学习一下。

Dubbo与Dubbox的关系

SOA架构

     SOA是Service-Orientend Architecture,它是一种支持面向服务的架构样式。百科解释: 面向服务的体系结构(SOA)是一个组件模型,它将应用程序的不同功能单元(称为服务)通过这些服务之间定义良好的接口和契约联系起来。接口是采用中立的方式进行定义的,它应该独立于实现服务的硬件平台、操作系统和编程语言。这使得构建在各种这样的系统中的服务可以以一种统一和通用的方式进行交互。
     随着互联网的发展,网站应用的规模不断扩大,技术架构不断升级,垂直应用架构已经无法应对,分布式架构越来越流行,当服务越来越多,急需增加一个调度中心管理集群容量,提高集群利用率,流动计算架构是以资源调度和治理中心(SOA)为核心的解决方案。
在这里插入图片描述

Dubbo

     Dubbo源于阿里的淘宝网开源的分布式的服务架构,致力于提高性能和透明化的RPC远程服务调用方案,是SOA服务化治理方案的核心框架。
在这里插入图片描述
节点角色说明:

  • Provider:暴露服务的服务提供方。
  • Registry:服务注册与发现的注册中心。
  • Consumer:调用远程服务的服务消费方。
  • Monitor:统计服务的调用次数和调用时间的监控中心。
  • Container:服务运行容器。

调用关系说明:

  1. 服务器负责调用,加载,运行服务器提供者。
  2. 服务提供者在启动的时候,向注册中心注册自己提供的服务。
  3. 服务消费者在启动的时候,想注册中心订阅自己需要的服务。
  4. 注册中心返回服务提供者地址列表给消费者,如果有变更,注册中心将基于长连接推送表更数据给消费者。
  5. 服务消费者,从提供者地址列表中,基于软负载均衡算法,选一台提供者进行调用,如果调用失败,再选另一台调用。
  6. 服务消费者和提供者,在内存中累计调用次数和调用时间,定时每分钟发送一次统计数据到监控中心。
特点

(1)连通性

  • 注册中心负责服务地址的注册与查找,相当于目录服务,服务提供者和消费者旨在启动是与注册中心交互,注册中心不转发请求,压力较小。
  • 监控中心负责统计各服务调用次数,调用时间等,统计现在内容汇总后每分钟一次发到监控中心服务器,并以报表展示。
  • 服务提供者向注册中心注册其提供的服务,并汇报调用时间到监控中心,此事件不包括网络开销。
  • 服务消费者向注册中心获取服务提供者地址列表,并根据负载算法直接调用提供者,同时汇报调用时间到监控中心,此时间包含网络开销。
  • 注册中心,服务提供者,服务消费者三者之间均为长连接,监控中心除外。
  • 注册中心通过长连接感知服务提供者的存在,服务提供者宕机,注册中心将立即推送事件通知消费者。
  • 注册中心和监控中心全部宕机,不影响已运行的提供者和消费者,消费者在本地缓存了提供者列表。
  • 注册中心和监控中心都是可选的,服务消费者可以直连服务提供者。

(2)健壮性

  • 监控中心宕掉不影响使用,只是丢失部分采样数据。
  • 数据库宕掉后,注册中心仍能通过缓存提供服务列表查询,但不能注册新服务。
  • 注册中心对等集群,任何一台宕掉后,将自动切换到另一台。
  • 注册中心全部宕掉后,服务提供者和服务消费者仍能通过本地缓存通信。
  • 服务提供者无状态,任意一台宕掉后,不影响使用。
  • 服务提供者全部宕掉后,服务消费者应用将无法使用,并无限次重连等待服务提供者恢复。

(3)伸缩性

  • 注册中心为对等集群,可动态增加机器部署实例,所有客户端将自动发现新的注册中心。
  • 服务提供者无状态,可动态增加机器部署实例,注册中心将推送新的服务提供者信息给消费者。

(4)升级性

  • 当服务集群规模进一步扩大,带动IT治理结构进一步升级,需要实现动态部署,进行流动计算,现有分布式服务架构不会带来阻力。

Dubbox

     淘宝网将其开源之后,得到了很多的拓展和支持(比较出名的有:当当网的扩展版本dubbox,京东的扩展版本jd-hydra等),后期由于一些原因dubbo团队解散,不再更新,但其推展的版本dubbox却得到了不断的发展, Dubbox(即Dubbo eXtensions)是当当网Fork基于dubbo2.x的升级版本,兼容原有的dubbox。其中升级了zookeeper和spring版本,并且支持restfull风格的远程调用。

dubbox是基于dubbo的升级:

  • 支持REST风格远程调用(HTTP+JSON/XML);
  • 支持基于Kryo和FST的Java高效序列化实现;
  • 支持基于Jackson的JSON序列化;
  • 支持基于嵌入式Tomcat的HTTP remoting体系;
  • 升级Spring至3.x;
  • 升级Zookeeper客户端;
  • 支持完全基于Java代码的Dubbo配置。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值