当前位置: 首页 > news >正文

2024系统架构师---下午题目常考概念

1.管道-过滤器的概念:管道-过滤器风格具备高内聚、低耦合、支持软件重用、扩展性好、支持并发等优点,但它有编写复杂、不适合处理交互应用等缺点。

2.隐式调用的概念:隐式调用基于事件触发的思想,具备支持软件重用,改进系统方便等优点,但它有构件放弃了对系统计算的控制、事件传递中的数据交换存在问题、语义依赖事件的上下文约束等缺点。

3.解释器风格的概念:解释器风格的核心是“解释”,一个规则它可以解释为A,另一个规则它可以解释为B,针对不同的语法规则,只需对解释器进行扩展即可,因此可应对语法规则的不断改变及扩展;其缺点是:如果语法规则的数量太多,会增加系统复杂度,性能下降。

4.序列图与协作图的对比:序列图强调消息交互的时间顺序,而协作图强调接受和发送消息的对象的组织结构及通信方式。

5.对象模型的概念:对象模型描述系统中对象的静态结构,对象之间的关系,属性和操作,主要用对对象图来实现。

6.动态模型的概念:动态模型描述与时间和操作顺序有关的系统特征,主要用顺序图、状态图、活动图、通信图来实现的。

7.功能模型的概念:功能模型侧重于描述系统的功能,即系统如何从输入得输出,它不考虑具体的实现过程,主要用DFD来实现;

8.对象模型师动态模型及功能模型的基础。功能模型偏向于描述“发生了什么”,动态模型偏向于描述“什么时候发生的”,对象模型偏向于描述“发生的客体”;

9.常见的反规范技术相关概念:

        增加冗余列:增加冗余列是指多个表中增加相同的常用列,可用来在查询时避免链接操作。        

        增加派生列:增加派生列式把可由通过表中其他数据计算生成的列作为固定的列插入到表中,它的作用是在查询的时候减少计算量,从而加快查询速度。

        重新组表:重新组表是指如果许多用户需要查看两个表中链接出来的结果数据,则把这两个表重新组成一个表来减少链接从而提升性能。

        分割表:分割表有水平分割,垂直分割两个,水平分割是把表按记录进行分割,把数据放到多个独立的表中,主要用于表数据规模很大,表中数据相对独立或者数据需要存放到多个介质上时使用;垂直分割表是按照列进行分割,通常将主键与部分列放到一个表中,主键与其他列放到另一个表中,在查询时减少IO次数。

10.解决数据不一致的问题的三种常见方法:

        批处理:批处理维护是指通过定期运行批处理作业或者存储过程对数据库进行修改,适用于对实时性要求不高的情况。

        应用逻辑:是指在同一个事务中对所有涉及的表进行增删改查操作,同一逻辑必须在所有的应用中使用或者维护,缺点是容易遗漏,特别是在需求变化的时候,不易于维护。

        触发器:触发器是指对数据的任何修改立即出发对数据库某些列的相应修改,实时性好,也易于维护。

11.Redis与MYSQL数据实时同步方案有以下三种:

        (1)引用MYSQL的事务,因为事务有一致性保证,事务提交成功之后再进行更新缓存;

        (2)在缓存中引用一些访问控制位,数据库数据变化后,同步变更对应的访问控制位,然后从缓存查询时,率先判断访问控制位,有变化就从数据库查询,无变化的话从缓存返回数据;

        (3)通过数据库中间件产品保证缓存和数据库数据的实时同步;

相关文章:

2024系统架构师---下午题目常考概念

1.管道-过滤器的概念:管道-过滤器风格具备高内聚、低耦合、支持软件重用、扩展性好、支持并发等优点,但它有编写复杂、不适合处理交互应用等缺点。 2.隐式调用的概念:隐式调用基于事件触发的思想,具备支持软件重用,改…...

【Linux】从零开始认识五种IO模型 --- 理解五种IO模型,开始使用非阻塞IO

恐惧让你沦为囚犯, 希望让你重获自由。 --- 《肖申克的救赎》--- 五种IO模型与阻塞IO 1 前言2 五种IO模型3 非阻塞IO 1 前言 通过网络通信的学习,我们能够理解网络通信的本质是进程间通信,而进程间通信的本质就是IO。 IO就是input与outp…...

Spring Boot 集成阿里云直播点播

在当今数字化时代,视频直播和点播服务已经成为许多应用的核心功能。阿里云提供了强大的直播和点播服务,能够满足各种规模的应用需求。而 Spring Boot 作为一种流行的 Java 开发框架,能够快速构建高效的应用程序。本文将详细介绍如何在 Spring…...

舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)

舍伍德业务安全架构(Sherwood Applied Business Security Architecture, SABSA)是一个企业级的安全架构框架,它提供了一个全面的方法来设计和实现信息安全策略。SABSA模型将业务需求与安全控制相结合,确保企业的信息安全措施能够支…...

论可以对抗ai编程的软件开发平台(直接把软件需求描述变成软件的抗ai开发平台)的设计

论可以对抗ai编程的软件开发平台(直接把软件需求描述变成软件的抗ai开发平台)的设计 大家知道,传统的数学密码,都可以被量子计算机破解,但是这些年发展出很多数学密码,量子计算机也破解不了,叫…...

饿了么数据库表设计

有商家表、商品表、商品规格表、购物车表,不难分析出表是不够全面的。 (1)首先分析需要补充的表 1.对于购物车而言肯定有对应的用户,因此要添加一个用户表。 2.商品规格是冷,热,半分糖、全糖,对于冷热和半分糖是可以分…...

Flink处理乱序的数据的最佳实践

目录 网络延迟和分布式系统 事件时间与处理时间的差异 事件时间和水位线(Watermark) 时间窗口(TimeWindow) 滚动窗口(Tumbling Window) 滑动窗口(Sliding Window) 会话窗口(Session Window) 自定义Watermark生成策略 设置允许延迟和侧输出 设置允许的最大延迟时间 使…...

Android OpenGL ES详解——模板Stencil

目录 一、概念 1、模板测试 2、模板缓冲 二、模板测试如何使用 1、开启和关闭模板测试 2、开启/禁止模板缓冲区写入 3、模板测试策略函数 4、更新模板缓冲 5、模板测试应用——物体轮廓 三、模板缓冲如何使用 1、创建模板缓冲 2、使用模板缓冲 3、模板缓冲应用——…...

vscode在cmake config中不知道怎么选一个工具包?select a kit

vscode在cmake config中不知道怎么选一个工具包,或者发现一直在用VS的工具包想换成自己的工具包。select a kit vscode在cmake config中不知道怎么选一个工具包,或者发现一直在用VS的工具包想换成自己的工具包。select a kit 1.在VSCode中 按ctrlshift…...

无人机之无线电监测设备技术篇

一、技术原理 无人机的无线电监测设备主要通过捕捉和分析无人机发出的无线电信号来实现对无人机的监测和定位。这些信号包括无人机的上行遥控信号、下行数据图传信号等。设备采用多种技术手段,如频谱分析、信号解调、定位算法等,对接收到的信号进行处理和…...

【系统架构设计师】预测试卷一:案例分析

更多内容请见: 备考系统架构设计师-专栏介绍和目录 文章目录 试题一(共25分)【问题 1】(12分)【问题 2】(13分)试题二(共 25分)【问题 1】(12分)【问题 2】(7分)【问题 3】(6分)试题三(共25分)【问题 1】(9分)【问题 2】(16分)试题四(共25分)【问题 1】…...

一篇文章教会你I2C通信(软件I2C和硬件I2C)以读取MPU6050为例,附STM32代码示例

目录 一、I2C通信介绍: (1)基本概念: (2)特点: (3)工作原理: 二、I2C通信原理: (1)I2C 物理层: &…...

Python实现SPFA算法

目录 Python实现SPFA算法引言一、SPFA算法的理论基础1.1 最短路径问题1.2 SPFA算法的基本原理1.3 SPFA算法的复杂度 二、SPFA算法的Python实现2.1 基本实现2.2 案例一:使用SPFA算法进行城市交通最短路径计算2.2.1 实现代码 2.3 案例二:负权重边的处理2.3…...

MYSQL安装(ubuntu系统)

rpm -qa 查询安装软件包 ps axj 查询服务 卸载mysql(万不得已) ps axj | grep mysql 查看是否存在mysql服务 systemctl stop mysqld 关闭该服务 rpm -qa | grep mysql 查安装mysql安装包 rmp -qa | grep mysql | xargs (yum apt) -y remove进行批量…...

Cpp二叉搜索树的讲解与实现(21)

文章目录 前言一、二叉搜索树的概念定义特点 二、二叉树的实现基本框架查找插入删除当只有0 ~ 1个孩子的时候当有2个孩子的时候 三、二叉树的应用K模型KV模型 四、二叉树的性能分析总结 前言 这是全新的一个篇章呢,二叉搜索树是我们接下来学习set、map的前提 迈过它…...

微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern)

微服务设计模式 — 补偿事务模式(Compensating Transaction Pattern) 定义 在云计算和分布式系统中,管理跨多个微服务或组件的事务一致性是一项极具挑战性的任务,补偿事务模式Compensating Transaction Pattern)是一种…...

20 实战:形状编码、运动补偿和纹理编码的实现(基于python)

在当今多媒体时代,视频处理与编码已经成为各个领域中不可或缺的一部分。无论是视频编辑、流媒体传输,还是计算机视觉应用,视频编码技术都扮演着关键角色。本文将详细解析一个基于Python的图形用户界面(GUI)视频编码器。通过对代码的逐行讲解、功能分析以及参数调节方法的探…...

区块链-C++挖矿软件XMRIG源码分析

C++挖矿软件源码分析 3rdpartybackendgrgon2Obfusheader.hmain 程序 xmrig.cppxmrig命名空间process类Entry::IdApp类CoreControllerbasetoolkernelinterfacesDonateStrategy.cppdonate.h/2/dmiCmake 跨平台的自动化构建系统CMakeLists.txt.cmake 13个引入算力哈希率 HashrateE…...

C语言指针的介绍

零.导言 在日常生活中,我们常常在外出时居住酒店,细心的你一定能发现酒店不同的房间上有着不同的门牌号,上面写着像308,512之类的数字。当你定了酒店之后,你就会拿到一个写有门牌号的钥匙,凭着钥匙就能进入…...

八大排序算法——堆排序

目录 前言 一、向上调整算法建堆 二、向下调整算法建堆 三、堆排序 前言 堆排序是基于堆结构的一种排序思想,因此要为一个乱序的数组进行排序的前提是数组必须要是一个堆,所以要先对数组进行建堆操作 一、向上调整算法建堆 时间复杂度:O…...

终极Il2CppDumper使用指南:从原理到实战的Unity逆向工程利器

终极Il2CppDumper使用指南:从原理到实战的Unity逆向工程利器 【免费下载链接】Il2CppDumper Unity il2cpp reverse engineer 项目地址: https://gitcode.com/gh_mirrors/il/Il2CppDumper Il2CppDumper是一款强大的Unity il2cpp逆向工程工具,能够帮…...

如何在VSCode中实现高效Mermaid图表实时预览:一站式解决方案

如何在VSCode中实现高效Mermaid图表实时预览:一站式解决方案 【免费下载链接】vscode-mermaid-preview Previews Mermaid diagrams 项目地址: https://gitcode.com/gh_mirrors/vs/vscode-mermaid-preview 还在为技术文档中的图表制作而头疼吗?你是…...

经典的网格寻路问题实例分析

经典的网格寻路问题消除墙砖 这一设置会导致地形发生变化,增加问题处理的难度。让我们先去掉这一要求,这样题目就简化成了经典的 网格寻路问题:给你一个 的网格,其中每个单元格不是 (空)就是 (障…...

3步搞定Windows字体个性化定制:终极免费方案

3步搞定Windows字体个性化定制:终极免费方案 【免费下载链接】noMeiryoUI No!! MeiryoUI is Windows system font setting tool on Windows 8.1/10/11. 项目地址: https://gitcode.com/gh_mirrors/no/noMeiryoUI 想让Windows系统字体告别千篇一律的单调样式吗…...

告别Unity!用eDrawings ActiveX控件在WinForm里轻松嵌入CAD三维模型(附避坑指南)

轻量化CAD集成方案:eDrawings ActiveX控件在WinForm中的高效实践 当机械设计软件公司需要为内部物料管理系统添加零件预览功能时,技术选型往往面临两难抉择。Unity等游戏引擎虽然功能强大,但其资源占用和开发复杂度对于简单的CAD模型预览场景…...

从滑动变阻器到真实传感器:STM32CubeMX ADC单通道采集电压的校准与数据处理实战

从滑动变阻器到真实传感器:STM32CubeMX ADC单通道采集电压的校准与数据处理实战 在嵌入式开发中,ADC(模数转换器)是将模拟信号转换为数字信号的关键外设。许多开发者能够通过STM32CubeMX快速配置ADC并获取原始值,但当…...

离线地图项目救星:手把手教你用微图批量下载并管理多源瓦片(附避坑点)

离线地图实战指南:微图工具链与多源瓦片管理全解析 在智慧园区建设、车载导航系统开发或野外作业场景中,稳定可靠的地图服务往往是刚需。但现实情况是,这些场景常面临网络覆盖不稳定甚至完全离线的挑战。传统解决方案要么依赖预装商业地图数…...

mat-chem-sim-pred开发者指南:如何贡献新的科学计算算子

mat-chem-sim-pred开发者指南:如何贡献新的科学计算算子 【免费下载链接】mat-chem-sim-pred 面向工业领域,聚焦计算仿真、预测两大核心场景,构建面向流程工业"机理数据"双轮驱动的领域计算层,推动AI for Science在材料…...

protobufjs 编译命令选错就报错?一文搞懂 pbjs 的 -w 参数(es6 vs commonjs 实战解析)

ProtobufJS编译模块类型选型指南:ES6与CommonJS的深度对比与实战避坑 最近在Vite项目中集成Protobuf时,编译后的模块导入总是抛出The requested module does not provide an export named错误。这个问题困扰了我整整两天,最终发现根源在于pbj…...

《流畅的Python》读书笔记03(补充01): 丰富的序列 - Python序列类型核心解析

《流畅的 Python》第 2 章“丰富的序列”系统性地阐述了 Python 序列类型的体系结构、核心操作及其背后的设计哲学。本章内容可归纳为以下四个核心模块: 一、序列类型的分类体系 Python 序列从两个正交维度进行分类,形成了清晰的类型矩阵。 分类维度类…...