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

news2024/11/23 21:36:03

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架构是由垂直架构发展而来的;

RPC架构

SOA架构[Service-Oriented Architecture]

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

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

RPC架构出现的问题

RPC架构出现的问题

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

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

SOA架构

SOA架构

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

企业服务总线 ESB

企业服务总线 ESB

微服务架构

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

微服务架构

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/1020936.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

深入理解Java单例模式和优化多线程任务处理

目录 饿汉模式懒汉模式单线程版多线程版双重检查锁定 阻塞队列 单例模式能保证某个类在程序中只存在唯一一份实例, 而不会创建出多个实例,并提供一个全局访问点。 饿汉模式 类加载的同时,创建实例。 class Singleton {private static final Singlet…

2023:生成式AI与存储最新发展和趋势分析(上)

生成式AI的热潮在短时间内席卷全球,以一种势不可挡的趋势迅速出圈,在某一时间段,似乎出现了“除了IT行业,人人都是AI专家”的盛况。这一轮如火如荼的全民AI热潮迸发至今,业已过半载,待最初的烟花绚烂散去&a…

【基础篇】六、基于SpringBoot来整合SSM的案例(下)

文章目录 1、前后端调用:axios发送异步请求2、添加功能3、删除功能4、修改功能5、异常消息处理6、分页功能7、分页Bug处理8、条件查询 接下来加入前端页面,使用axios发送异步请求调用上篇的接口。调前端代码时,发现还挺有趣,刷新、…

Learn Prompt-ChatGPT 精选案例:广告文案

ChatGPT 可以帮助我们生成广告文案和宣传图片,这对营销品牌建设很有帮助。通常,一个产品会有一个主要的广告词,传达设计理念或宣传产品的好处。我们可以尝试直接生成文案,看看 ChatGPT 有没有好的创意。假设我们的产品是一款登山鞋…

【css | linear-gradient】linear-gradient()的用法

linear-gradient() CSS函数创建一个由两种或多种颜色沿一条直线进行线性过渡的图像,其结果是<gradient>数据类型的对象,此对象是一种特殊的<image> 数据类型。 先看一个线上的示例 https://code.juejin.cn/pen/7277486410842996771 语法 /* 渐变轴为 45 度&…

Docker容器详解

值得看的原文地址

一根USB线,全新单片机开发体验!推荐WeCanStudio工具套件

我的需求 回想当初大学时代,学习单片机的开发最繁琐的事情就是,通过串口升级STC的MCU来调试编写的固件。不知到有多少个深夜都在重复以下步骤&#xff1a; Keil编译代码打开STC软件,选择对生成的新固件程序手动断电、上电MCU板子(USB转串口的驱动还经常让电脑蓝屏&#x1f6…

极智开发 | 制作u盘启动盘的几种方式

欢迎关注我的公众号 [极智视界],获取我的更多经验分享 大家好,我是极智视界,本文分享一下 制作u盘启动盘的几种方式。 邀您加入我的知识星球「极智视界」,星球内有超多好玩的项目实战源码和资源下载,链接:https://t.zsxq.com/0aiNxERDq 在平时的工作、生活中,经常会涉及…

Bigemap在市政工程设计给排水行业的应用场景?

去年单位采购的&#xff0c;今年11月份才分配给我使用。 使用场景&#xff1a; 现场定位&#xff1a; 通过我们电脑导入cad图纸数据&#xff0c;根据需求可以画一些简单的示意路线&#xff0c;发送到手机进行现场比对&#xff0c;最后会在cad里面加入管道设计方案。 去年单位采…

Windows Server 2012 R2系统远程桌面的数字证书算法SHA1升级到SHA256

问题描述&#xff1a; 最近项目进行密评的时候&#xff0c;Windows Server 2012 R2发现了以下证书问题&#xff1a; Windows Server 2012 R2系统远程桌面的TLS 1.2协议使用SHA1算法数字证书&#xff0c;且证书有效日期截止23年10月&#xff0c;建议注意证书到期时间&#xff…

极简解析!IP计费的s5爬虫IP

大家好&#xff01;今天我将为大家分享关于s5爬虫IP服务的知识。对于经常做爬虫的小伙伴来说&#xff0c;需要大量的爬虫IP支持爬虫业务&#xff0c;那么对于选择什么样的爬虫IP&#xff0c;我想我有很多发言权。 下面我们一起了解下IP计费的s5爬虫IP的知识&#xff0c;废话不…

Spring Boot + Vue3前后端分离实战wiki知识库系统<十三>--单点登录开发二

接着Spring Boot Vue3前后端分离实战wiki知识库系统<十二>--用户管理&单点登录开发一继续往下。 登录功能开发&#xff1a; 接下来则来开发用户的登录功能&#xff0c;先准备后端的接口。 后端增加登录接口&#xff1a; 1、UserLoginReq&#xff1a; 先来准备…

都在谈网关,Modbus网关到底是什么

随着工业自动化的不断发展&#xff0c;各种协议和标准在行业中变得越来越重要。其中&#xff0c;Modbus协议是一种在工业自动化领域非常流行的通信协议&#xff0c;而Modbus网关是实现Modbus协议转换的关键设备。本文将介绍HiWoo Box&#xff0c;作为Modbus网关的应用和发展趋势…

2023App测试必掌握的核心测试:UI、功能测试

一、UI测试 UI即User Interface (用户界面)的简称。UI 设计则是指对软件的人机交互、操作逻辑、界面美观的整体设计。好的UI设计不仅是让软件变得有个性有品味,还要让软件的操作变得舒适、简单、自由、充分体现软件的定位和特点。手机APP从启动界面开始, 到运行过程,直至退出,…

【校招VIP】测试方案之测试需求分析

考点介绍&#xff1a; 需求分析就是要弄清楚用户需要的是什么功能&#xff0c;用户会怎样使用系统。这样我们测试的时候才能更加清楚的知道系统该怎么样运行&#xff0c;才能更好的设计测试用例&#xff0c;才能更好的测试。 测试方案之测试需求分析-相关题目及解析内容可点击…

C/C++空格分开输出 2019年12月电子学会青少年软件编程(C/C++)等级考试一级真题答案解析

目录 C/C空格分开输出 一、题目要求 1、编程实现 2、输入输出 二、解题思路 1、案例分析 三、程序代码 四、程序说明 五、运行结果 六、考点分析 C/C空格分开输出 2019年12月 C/C编程等级考试一级编程题 一、题目要求 1、编程实现 读入一个字符&#xff0c;一个整…

Linux知识点 -- 网络基础(二)-- 应用层

Linux知识点 – 网络基础&#xff08;二&#xff09;-- 应用层 文章目录 Linux知识点 -- 网络基础&#xff08;二&#xff09;-- 应用层一、使用协议来实现一个网络版的计算器1.自定义协议2.守护进程3.使用json来完成序列化 二、HTTP协议1.概念2.HTTP协议请求和响应的报文格式3…

DB2 JDBC连接详解(附DEMO~超详细)

DB2 JDBC连接详解 DB2 JDBC连接详解摘要引言正文1. JDBC基础2. 配置DB2JDBC连接2.1 DB2连接JDBC2.2 DB2连接JDBC是否成功2.3 DB2连接JDBC获取表信息注释等2.4 DB2连接JDBC根据表名获取字段信息注释等2.5 执行 SQL 查询2.6 执行 SQL 查询2.7 插入数据2.8 执行存储过程2.9 批处理…

Vue3 封装 element-plus 图标选择器

一、实现效果 二、实现步骤 2.1. 全局注册 icon 组件 // main.ts import App from ./App.vue; import { createApp } from vue; import * as ElementPlusIconsVue from element-plus/icons-vueconst app createApp(App);// 全局挂载和注册 element-plus 的所有 icon app.con…

Android平台下奔溃Crash和无响应ANR日志抓取分析

一、使用AndroidStudio 在logcat中查看实时日志&#xff0c;需要选择连接的手机和应用包名 AS下载链接 二、使用adb shell dumpsys dropbox命令获取 #!/bin/bash # path"/data/system/dropbox" # 在手机这个目录下存储了崩溃日志 newest_time$(adb shell dumps…