Dubbo3应用开发——架构的演变过程

什么是Dubbo

  1. 早期Dubbo的定位;

    基于Java的高性能,轻量级的RPC框架;SOA【Service-Oriented Architecture ⾯向服务的架构】 = RPC+服务治理;

  2. 2018年阿⾥巴巴把这个框架捐献给了 Apache 基⾦会,正式更名为 Apache Dubbo。最新版本为Dubbo3.x Apache Dubbo 是⼀款易⽤、⾼性能的WEB和RPC 框架,同时为构建企业级微服务提供服务发现、流量治理、可观测、认证鉴权等能⼒、⼯具与最佳实践。

  3. Dubbo3 已在阿⾥巴巴内部微服务集群全⾯落地,成功取代运⾏多年的 HSF 框架。依托于Dubbo3,阿⾥提出了⾃⼰的微服务解决⽅案DNS(Dubbo + nacos + sentinel);

  4. 经过孵化,Dubbo⽬前成为Apache的顶级项⽬。

    官方⽹站:

    https://dubbo.apache.org/zh-cn/

    GitHub:

    https://github.com/apache/dubbo

SOA与微服务

时⾄今⽇,SOA与微服务架构基本可以统⼀成⼀个概念了。

单体结构

问题:

  1. 热点问题(某个子系统访问量大,导致其他子系统的访问出现问题);
  2. 扩展性差,新资源的分配力度不精确(门户系统访问量,增加机器,增加服务器tomcat。但是新增的资源,不能精确给到门户);
  3. 模块(子系统)耦合度高、相互影响(修改某一个子系统的代码,产生了问题,影响其他的子系统);
  4. 维护部署成本高(某次发布,只更新了后台管理的(订单模块),但是因为是单体架构,所以会发布整个系统;
  5. 技术栈受限,必须使用相同的编程语言开发不同的子系统。

水平扩展 (集群构建)

比较单体架构,水平分割架构的好处是:

  1. 提高了系统的稳定性,—台节点出现问题,不会影响整个系统;
  2. 提高了系统的硬件支撑;
  3. 提高了系统并发的能力;

但是没有根本上解决单体架构的问题:

  1. 热点问题(某个子系统访问量大,导致其他子系统的访问出现问题);
  2. 扩展性差,新资源的分配力度不精确(门户系统访问量,增加机器,增加服务器tomcat。但是新增的资源不能精准的分配;
  3. 模块(子系统)耦合度高、相互影响(修改某一个子系统的代码,产生了问题,影响其他的子系统);
  4. 维护部署成本高(某次发布,只更新了后台管理的(订单模块),但是因为是单体架构,所以会发布整个系统);
  5. 技术栈受限,必须使用相向的编程语言开发不同的子系统。

垂直架构

RPC架构[Remote Procedure CaLL]

RPC架构是由垂直架构发展而来的;

SOA架构[Service-Oriented Architecture]

SOA架构是RPC架构的演化。代表框架Dubbo:

  1. RPC
  2. 服务治理
  3. ESB

RPC架构出现的问题

如果我们右侧的订单模块只有一个,如果订单模块挂了,会影响整个调用链条;如果订单模块访问量大,只有一个会顾不过来;

所以我们可以对订单模块进行水平扩展,但是不具备可操作性,因为不能单独为订单模块做集群(订单是后台管理模块的一个功能);

SOA架构

可以把订单模块从后台管理系统中抽取成一个服务;可以把订单模块单独放到一个jvm中;

企业服务总线 ESB

微服务架构

微服务是SOA架构的升级,在微服务体系统中,没有⼦系统了,全部都是服 务化功能。微服务架构代表框架,SpringCloud,DNS;

Dubbo3应用开发——架构的演变过程的更多相关文章

  1. 网络编程之网络架构及其演变过程、互联网与互联网的组成、OSI七层协议、socket抽象层

    目录 网络架构及其演变过程 单机架构 CS架构 BS架构 BS架构和CS架构的区别 C/S架构的优缺点: B/S架构的优缺点: 互联网与互联网的组成 互联网的组成(教科书版) 互联网的组成(科普版) ...

  2. [Cordova] Plugin开发架构

    [Cordova] Plugin开发架构 问题情景 开发Cordova Plugin的时候,侦错Native Code是一件让人困扰的事情,因为Cordova所提供的错误讯息并没有那么的完整.常常需要 ...

  3. 基于asp.net的Web开发架构探索

    问题由来 最近在研究适合团队开发的web架构解决方案,该架构即要适合分工协作又要有一定扩展性,适合不同的数据库需要,因此我查阅了一些资料,初步构想出了一套架构,请各位多多指教. 探索 web开发架构最 ...

  4. E8.Net 工作流二次开发架构平台

    一.          产品简介 E8.Net工作流开发架构是基于微软.Net技术架构的工作流中间件产品,是国内商业流程管理(BPM)领域在.Net平台上的领先产品,是快速搭建流程管理解决方案的二次开 ...

  5. 全 Javascript 的 Web 开发架构:MEAN

    http://developer.51cto.com/art/201404/434759.htm 全 Javascript 的 Web 开发架构:MEAN 引言 最近在Angular社区的原型开发者间 ...

  6. Flux是一个Facebook团队的前端开发架构

    Flux是一个Facebook团队的前端开发架构 Flux introduction 本文组成: React 官方文档翻译 相关实践心得. 内容上是Flux的介绍,例子将会在以后写出.一旦稍微多了解一 ...

  7. App 组件化/模块化之路——构建开发架构思路

    App 组件化/模块化开发架构思路 随着业务的发展 App 开发技术也越来越成熟,对开发者来说 App 代码量也迅速地增长到一个数量级.对于如何架构 App 已经每个开发者面临的实际问题.好的架构可以 ...

  8. ASP.NET Core 企业级开发架构简介及框架汇总

    企业开发框架包括垂直方向架构和水平方向架构.垂直方向架构是指一个应用程序的由下到上叠加多层的架构,同时这样的程序又叫整体式程序.水平方向架构是指将大应用分成若干小的应用实现系统功能的架构,同时这样的系 ...

  9. 软件开发架构介绍||OSI七层协议之物理层、数据链路层、网络层、传输层(mac地址、ip协议、断开协议、tcp协议之三次握手四次挥手)

    一.网络编程 软件开发架构 C/S架构 C:客户端 想体验服务的时候才会去找服务端体验服务 S:服务端   24小时不间断的提供服务,即时监听,随时待命 B/S架构 B:浏览器    想体验服务的时候 ...

  10. 转: Orz是一个基于Ogre思想的游戏开发架构

    Orz是一个基于Ogre思想的游戏开发架构,好的结构可以带来更多的功能.Orz和其他的商业以及非商业游戏开发架构不同.Orz更专著于开发者的感受,简化开发者工作.Orz可以用于集成其他Ogre3D之外 ...

随机推荐

  1. 最流行的AI绘图工具Midjourney,你不得不知道的使用技巧

    ​关注文章下方公众号,可免费获取AIGC最新学习资料 本文字数:1500,阅读时长大约:10分钟 Midjourney成为了最受欢迎的生成式AI工具之一.它的使用很简单.输入一些文本,Midjourn ...

  2. @Target元注解的使用

    @Target注解标记另外的注解用于限制此注解可以应用哪种Java元素类型.先看Java SE 8中@Target是如何声明的: package java.lang.annotation; publi ...

  3. 1. SpringMVC 简介

    1. 什么是 MVC ‍ MVC是一种软件架构的思想,将软件按照模型.视图.控制器来划分 M:Model,模型层,指工程中的JavaBean,作用是处理数据 ‍ JavaBean分为两类: 一类称为实 ...

  4. 记录一个在写项目中遇到的Maven依赖无法导入的问题

    记录一个在写项目中遇到的Maven依赖无法导入的问题 项目是一个父项目做依赖管理,三个子项目,今天遇到一个问题: 子项目中导入的依赖,怎么都导入不进去,maven仓库中已经有了,idea提示也没有问题 ...

  5. linux grep基本用法--九五小庞

    通过此语句可以查询一个文件或者当前目录下所有文件中包含exception和error的文件 grep -E -i "((exception)|(error))" * 1.查找文件中 ...

  6. vue3 安装 3d-force-graph

    1.首先创建vue3的项目 2.创建好后通过开发工具打开项目并打开命令行,输入指令 npm install 3d-force-graph 安装即可 3.在使用的页面中引入 3d-force-graph ...

  7. JavaScript中this的绑定

    <svg xmlns="http://www.w3.org/2000/svg" style="display: none;"> <path s ...

  8. 即构发布 LCEP 低代码互动平台产品 RoomKit,实现互动房间0代码搭建

    2月5日,全球云通讯服务商ZEGO即构科技发布低代码互动平台 LCEP(Low-code Engagement Platform)产品 RoomKit,支持1V1在线课堂.小班课.大班课.视频会议.视 ...

  9. 零基础实现Java直播(一):集成

    从泛娱乐的秀场直播,到直播带货潮流中的电商直播,直播已经成为2020年最热的应用技术之一,越来越多的产品希望加入直播功能.下面我们基于即构Express Video SDK,来分享如何从零实现线上直播 ...

  10. Redis设计

    目录 过期键删除策略 持久化 RDB AOF AOF重写 主从复制 完整重同步和部分重同步 哨兵Sentinel 哨兵对redis服务器集群的监听 执行者选举 故障转移 选择新的主服务器流程 过期键删 ...