Dubbo分布式服务框架的概念理解

Dubbo是是一个高性能,基于Java的RPC框架,由阿里巴巴开源。一个分布式的服务框架。可以实现SOA(面向服务的架构)架构。 Dubbo使用的公司:京东、当当、阿里巴巴、中国电信等等。

分布式服务架构的由来

问题:比如电信的计费系统提供了最原始的扣费功能,需要接入此计费系统的应用比较多,比如打电话需要计费、比如流量需要计费、比如宽带需要计费、比如ITV需要计费等等。  如果在每一个系统中都写一套计费的逻辑就会出现代码冗余过大,并且逻辑无法做到统一可维护。 所以需要将计费功能单独提炼出来,作为一个业务模块提供给其他应用使用。

以下式架构演变过程(以下案例纯粹为了说明问题,跟业务本身无关):

早期,电信只有座机的时候,系统只有一个打电话的功能和一个计费的功能。因为业务单一,所以只有一个系统。

  • 单一业务的单体式架构

后来,电信业务丰富起来了。新增了“短信”、“宽带”、“手机流量”等业务功能。按照常规做法,也只会在原有的“打电话”单一业务系统的基础上,多添加几个业务功能模块而已。所有的业务功能(““电话”、“短信”、“宽带”、“手机流量””)都还是在一个项目内部。如下图:

  • 多业务单体式架构

多业务模式下的单体架构,当业务不断扩张、系统内部的业务功能模块越来越多,会导致如下问题:

1、会导致业务功能模块的耦合度太高、不利于扩展和维护,以及推广。

2、再者程序中存在一个魔性的数字:65535(16bit最大值)限制,(因为调用方法的指令容量只有16bit,65535正好是16bit能容纳的最大数字)。重复的方法数太多,会加速达到这个上限。(比如Android 应用65535很容易就上限了)。

比如淘宝、天猫、阿里巴巴三个项目都需要用到支付,设想,将淘宝、天猫、阿里巴巴三个项目整合成一个项目的三个业务功能模块,将会比较杂乱。所以,出现了淘宝、天猫、阿里巴巴三个独立的项目,类似下图:

  • 垂直架构

通过一步一步演变,架构已经成为如图所示的垂直式架构。但是大家都发现了其中的计费功能出现了4次。这样肯定不利于项目的维护和统一配置。(并且上图的计费只是众多可能重复模块中的一员)。所以不得不将多个项目都要使用的相同模块独立出来,共享给业务功能使用。这样,就演变成如下图架构:

如图所示,计费被单独提炼出来成为一个独立的app,共其他app共同使用。图中“其他”模块用来代替千千万万类似计费的模块。

这样一来,每一个方块就是一个独立的应用。这样解决了业务复杂度,将业务模块化、独立化,方便共享和扩展。这样的架构带给我们需要解决的问题如下:

1、各个独立app之间的通信问题怎么解决?

2、怎么做到统一调度、协调处理。

3、如果计费模块是并发最大的模块,但是其他模块并发不是很大。则需要对计费进行负载均衡,怎么实现?

以上问题可以使用dubbo解决。

转载自:https://blog.csdn.net/muyi_amen/article/details/79818481

分布式服务框架的概念理解相关推荐

  1. DSF学习1_Dubbo详解(一)分布式服务框架的概念理解

    Dubbo分布式服务框架的概念理解 Dubbo是是一个高性能,基于Java的RPC框架,由阿里巴巴开源.一个分布式的服务框架.可以实现SOA(面向服务的架构)架构. Dubbo使用的公司:京东.当当. ...

  2. Dubbo详解(一)分布式服务框架的概念理解

    Dubbo分布式服务框架的概念理解 Dubbo是是一个高性能,基于Java的RPC框架,由阿里巴巴开源.一个分布式的服务框架.可以实现SOA(面向服务的架构)架构. Dubbo使用的公司:京东.当当. ...

  3. 分布式服务框架 Zookeeper — 管理分布式环境中的数据

    FROM: http://www.superwu.cn/2014/11/26/1461 本节本来是要介绍ZooKeeper的实现原理,但是ZooKeeper的原理比较复杂,它涉及到了paxos算法.Z ...

  4. 阿里分布式服务框架Dubbo的架构总结

    Dubbo是Alibaba开源的分布式服务框架,它最大的特点是按照分层的方式来架构,使用这种方式可以使各个层之间解耦合(或者最大限度地松耦合).从服务模型的角度来看,Dubbo采用的是一种非常简单的模 ...

  5. 分布式服务框架XXL-RPC

    <分布式服务框架XXL-RPC>      一.简介 1.1 概述 XXL-RPC 是一个分布式服务框架,提供稳定高性能的RPC远程服务调用功能.拥有"高性能.分布式.注册中心. ...

  6. 华为18级大牛倾情奉送:分布式服务框架和微服务设计原理实战文档,啃完发现涨薪如此简单

    前言 分布式服务框架不仅仅包含核心的运行时类库,还包括服务划分原则.服务化最佳实践.服务治理.服务监控.服务开发框架等,它是一套完整的解决方案,用来协助应用做服务化改造,以及指导用户如何构建适合自己业 ...

  7. Dubbo分布式服务框架入门(附工程)

    要想了解Dubbo是什么,我们不防先了解它有什么用. 使用场景:比如我想开发一个网上商城项目,这个网上商城呢,比较复杂,分为pc端web管理后台,微信端销售公众号,那么我们分成四个项目,pc端网站,微 ...

  8. 【20211008】为什么分布式服务框架越来越火

    时间:2021年10月08日 作者:小蒋聊技术 大家好,欢迎来到小蒋聊技术.小蒋准备和大家一起聊聊技术的那些事. 通过上次的分享,小蒋又重新复习一遍了"单例模式".一个看似普普通通 ...

  9. 使用Zookeeper实现服务注册中心-《架构探险-从零开始写分布式服务框架》读书笔记

    前言 最近在看<架构探险-从零开始写分布式服务框架>,对于分布式框架的入门级选手还是挺合适的,扫盲.对分布式服务框架中的基本概念:RPC.SOA.序列化.Spring集成RPC.ZooKe ...

最新文章

  1. Adam真的是最好的优化器吗?
  2. 【高并发、高性能、高可用】系统设计经验分享!
  3. android alert,Android AlertDialog的基本使用
  4. 设计模式-中介者模式(21)
  5. 安装Vuecli新版本正常,但是显示版本是低版本
  6. mysql 中文的数据类型_MySQL 数据类型
  7. 用实际的软件编程示例解释C#中的装饰器模式
  8. ThickBox在ASP.NET中的应用
  9. Hibernate入门第一讲——Hibernate框架的快速入门
  10. 在鹅厂的第5219天,我毕业了...
  11. APP运营推广,如何做到“饱和攻击”
  12. [oeasy]python0088_字节_Byte_存储单位_KB_MB_GB_TB
  13. android友盟埋点,React Native 的友盟统计--打点/埋点
  14. 使用IDEA整合SpringMVC和Mybatis(SSM框架)(二)
  15. ibm服务器芯片架构,IBM服务器X架构技术综述(图)
  16. 初生牛犊:Windows下Anti-sandboxes技术探究
  17. Junit Test类报错Class not found XXX
  18. mysql 2.71828_e值如何计算 2.71828
  19. 30岁的男人怎么样才算成功呢?
  20. 计算机术语中lisp,Lisp语言之父、人工智能之父John McCarthy

热门文章

  1. 微信朋友圈管理常见问题
  2. html框架布局模板上下结构的字有哪些,网站常用布局类型格式
  3. 开发版安装harmonyos,HarmonyOS | 小熊派鸿蒙开发板初体验
  4. web前端自学学习方法分享
  5. jQuery框架的 find() 方法 以及各种 复杂的情况 分析为什么
  6. 王者荣耀s16服务器维护,王者荣耀S16兵线刷新时间表一览
  7. CGRidCtrl控件 学习心得
  8. 戴java_炉石传说:戴JAVA的快乐术,节目效果满分,铲车人集合
  9. 【项目实战课】基于Pytorch的EfficientNet血红细胞分类竞赛实战
  10. 爱奇艺动漫App上线已久未能C位:推广很关键