软考 系统架构设计师系列知识点之云原生架构设计理论与实践(8)

接前一篇文章:软考 系统架构设计师系列知识点之云原生架构设计理论与实践(7)

所属章节:

第14章. 云原生架构设计理论与实践

          第2节 云原生架构内涵

14.2 云原生架构内涵

关于云原生的定义有众多版本,对于云原生架构的理解也不尽相同。本节将根据广泛的云原生技术、产品和上云实践,给出一般性的理解。

14.2.3 主要架构模式

云原生架构有非常多的架构模式,这里选取一些对应用收益更大的主要架构模式进行讨论。

1. 服务化架构模式

2. Mesh化架构模式

3. Serverless模式

Serverless将“部署”这个动作从运维中“收走”,使开发者不用关心应用运行地点、操作系统、网络配置、CPU性能等。从架构抽象上看,当业务流量到来/业务事件发生时,云会启动或调度一个已启动的业务进程进行处理,处理完成后,云会自动关闭/调度业务进程,等待下一次触发,也就是把应用的整个运行都委托给云。

Serveless并非适用任何类型的应用,因此架构决策者需要关心应用类型是否适合于Serverless运算。如果应用是有状态的,由于Serverless的调度不会帮助应用做状态同步,因此云在进行调度时可能导致上下文丢失;如果应用是长时间后台运行的密集型计算任务,会无法发挥Serverless的优势;如果应用涉及频繁的外部I/O(网络或者存储,以及服务间调用),会因为繁重的I/O负担、时延大而不合适。事件驱动架构图如图14-2所示:

Serverless非常适合于事件驱动的数据计算任务计算时间短的请求/响应应用没有复杂相互调用的长周期任务

4. 存储计算分离模式

分布式环境中的CAP困难主要是针对有状态应用,因为无状态应用不存在C(一致性)这各维度,因此可以获得很好的A(可用性)和P(分区容错性),因而获得更好的弹性。在云环境中,推荐把各类暂态数据(如session)、结构化和非结构化持久数据都采用云服务来保存,从而实现存储计算分离。但仍然有一些状态如果保存到远端缓存,会造成交易性能的明显下降,比如交易会话数据太大、需要不断根据上下文重新获取等,这时可以考虑通过采用时间日志+快照(或检查点)的方式,实现重启后快速增量恢复服务,减少不可用对业务的影响时长。

5. 分布式事务模式

微服务模式提倡每个服务使用私有的数据源,而不是像单体这样共享数据源。但往往大颗粒度的业务需要访问多个微服务,必然带来分布式事务问题,否则数据就会出现不一致。架构师需要根据不同的场景,选择合适的分布式事务模式

(1)传统采用XA模式,虽然具备很强的一致性,但是性能差。

(2)基于消息的最终一致性(BASE)通常有很高的性能,但是通用性有限。

(3)TCC模式完全由应用层来控制事务,事务隔离性可控,也可以做到比较高效;但是对业务的侵入性非常强,设计开发维护等成本很高。

(4)SAGA模式与TCC模式的优缺点类似,但没有try这个阶段,而是每个正向事务都对应一个补偿事务,也是开发维护成本高。

(5)开源项目SEATA的AT模式非常高性能且无代码开发工作量,且可以自动执行回滚操作,同时也存在一些使用场景限制。

更多内容请看下回。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Java学习之类和对象、内存底层

目录 表格结构和类结构 表格的动作和类的方法 与面向过程的区别 具体实现 对象和类的详解 类的定义 属性(field 成员变量) 方法 示例--编写简单的学生类 简单内存分析(理解面向对象) 构造方法(构造器 constructor) 声明格式: 四…

探索父进程和子进程

文章目录 通过系统调用查看进程PID父进程、子进程 通过系统调用创建进程-fork初识为什么fork给父进程返回子进程的PID,给子进程返回0fork函数如何做到返回两个值一个变量为什么同时会有两个返回值?bash总结 通过系统调用查看进程PID getpid()函数可以获…

大屏可视化项目示例--基于Vue3+vite2+echart+mock+axios+dataV

图例: 项目环境: Vite、Echarts、Npm、Node、axios、mock、vue3、dataV。 项目地址: IofTV-Screen-Vue3: 🔥(IofTV-Screen Vue3版本)一个基于 vue3、vite、Echart 框架的物联网可视化(大屏展示)模板&…

多尺度变换(Multidimensional Scaling ,MDS)详解

一、基本思想 MDS(Multidimensional Scaling ,MDS多维尺度变换)是一种经典的降维算法,其基本思想是通过保持数据点之间的距离关系,将高维数据映射到低维空间中。 具体来说,MDS算法的基本步骤如下&#xff…

Cocos2dx-lua ScrollView[三]高级篇

一.概述 本文缩写说明:sv ScrollView, cell代表ScrollView的一个子节点 本文介绍sv的一种封装类库,来实现快速创建sv,有如下几个优点: 1.item的位置通过参数控制,提高开发效率 2.免去了调用sv的API,提…

Leetcode 322. 零钱兑换

心路历程: 这道题和上一道完全平方数的和基本上一摸一样,甚至比上一道题还简单,基于dp的建模: 状态:当前的目标总金额 动作:选哪一个硬币 返回值:凑成该目标总金额的最少硬币个数 这道题如果硬…

计算机网络数据链路层知识总结

物理层知识总结传送门 计算机网络物理层知识点总结-CSDN博客 功能 功能概述 一些基本概念 结点:主机、路由器链路﹔网络中两个结点之间的物理通道,链路的传输介质主要有双绞线、光纤和微波。分为有线链路、无线链路。数据链路︰网络中两个结点之间的逻辑通道&a…

红米手机Redmi 不会自动弹出USB调试选项,如何处理?(红米小米均适用)

参考: 红米手机Redmi 不会自动弹出USB调试选项,如何处理?(红米小米均适用) - 知乎 以红米9A为例; 【设置】菜单进入后,找到【我的设备】, 选择【全部参数】, 对准miui版…

shell脚本发布docker springboot项目示例

docker、git、Maven、jdk8安装略过。 使git pull或者git push不需要输入密码操作方法 约定: 路径:/opt/springbootdemo, 项目:springbootdemo, 打包:springbootdemo.jar, docker容器名字&#x…

LeetCode_33_中等_搜索旋转排序数组

文章目录 1. 题目2. 思路及代码实现详解&#xff08;Python&#xff09;2.1 二分查找 1. 题目 整数数组 n u m s nums nums 按升序排列&#xff0c;数组中的值 互不相同 。 在传递给函数之前&#xff0c; n u m s nums nums 在预先未知的某个下标 k &#xff08; 0 < k…

两分钟1200帧的长视频生成器StreamingT2V来了,代码将开源

两分钟1200帧的长视频生成器StreamingT2V来了&#xff0c;代码将开源 广阔的战场&#xff0c;风暴兵在奔跑…… prompt&#xff1a;Wide shot of battlefield, stormtroopers running… 这段长达 1200 帧的 2 分钟视频来自一个文生视频&#xff08;text-to-video&#xff09…

Caddy之静态站点应用场景

一、背景与介绍 无意之中看到公司部门的软件介质下载站点不是使用Nginx部署&#xff0c;而是使用Caddy。就比较好奇了&#xff0c;这个Caddy是个什么东西? 为啥他们没用Nginx呢&#xff0c;带着好奇心搜索了一下相关资料。 官方解释: Caddy is a powerful, extensible platfo…

谈谈MVCC机制

在MySQL中&#xff0c;MVCC&#xff08;多版本并发控制&#xff09;是InnoDB存储引擎使用的并发控制机制。它提供对数据的并发访问&#xff0c;并确保多用户环境中数据的一致性和隔离性。 InnoDB通过“Undo log”存储每条记录的多个版本&#xff0c;提供历史记录供读取&#x…

基于javaweb宠物领养平台管理系统设计和实现

基于javaweb宠物领养平台管理系统设计和实现 博主介绍&#xff1a;多年java开发经验&#xff0c;专注Java开发、定制、远程、文档编写指导等,csdn特邀作者、专注于Java技术领域 作者主页 央顺技术团队 Java毕设项目精品实战案例《1000套》 欢迎点赞 收藏 ⭐留言 文末获取源码联…

Php_Code_challenge12

题目&#xff1a; 答案&#xff1a; 解析&#xff1a; 字符串拼接。

深度学习| DiceLoss解决图像数据不平衡问题

图像数据不平衡问题 图像数据不平衡&#xff1a;在进行图像分割时&#xff0c;二分类问题中&#xff0c;背景过大&#xff0c;前景过小&#xff1b;多分类问题中&#xff0c;某一类别的物体体积过小。在很多图像数据的时候都会遇到这个情况&#xff0c;尤其是在医学图像处理的…

燃气官网安全运行监测系统-阀井燃气监测仪-旭华智能

近年来&#xff0c;燃气爆炸事故频发&#xff0c;造成了重大人员伤亡和财产损失。这也再次为我们敲响警钟&#xff0c;燃气是我们日常生活中不可或缺的能源&#xff0c;但其潜在的危险性也是不容小觑。因此在重要节点加装燃气阀井气体监测仪&#xff0c;并将数据上传到系统平台…

渐变颜色作图

clear clc close all % 生成 x 值 x linspace(0, 5, 1000); % 计算对应的 y 值&#xff08;二次函数分布&#xff09; y x .^ 2; % 添加一些随机噪声 y y randn(size(y)); clinspace(1,10,length(x)); arry1[x,y]; arry2sortrows(arry1,2,descend); arry3[arry2,c]…

vue 文件下载

1.返回路径下载 注: 针对一些浏览器无法识别的文件格式&#xff08;如pdf、xls、ppt&#xff09;。可以直接在地址栏上输入URL即可触发浏览器的下载功能。 情况1 //地址栏输入文件URLwindow.location.href URLwindow.open(URL) 注:该方式将下载逻辑放在后端处理&#xff0c…

pyqt 创建右键菜单栏

class MainModule(QMainWindow, Ui_MainWindow):def __init__(self):super().__init__(parentNone)self.setupUi(self)# 允许出现菜单栏self.tableWidget.setContextMenuPolicy(Qt.CustomContextMenu)# 对空间添加右键菜单栏处理 self.tableWidget.customContextMenuRequested.…