- 博客(1141)
- 资源 (203)
- 收藏
- 关注
转载 【新版】软考 - 系统架构设计师(总结笔记)
(5)数据库概念、数据模型、数据库模式、关系数据库、关系模型、关系运算、关系数据设计的基本理论、 函数依赖、键/候选键、函数依赖的公理(Armstrong 公理)、 规范化理论、模式分解(是否保持函数依赖&是否无损)、数据库设计、概念结构设计、E-R模型、 ER图两个不同实体的联系、概念结构设计的过程、逻辑结构设计、并发控制、事务的ACID特性、数据库的安全性、数据库备份与恢复、数据库性能优化、应用程序与数据库的交互、NoSQL数据库、分布式数据库、数据库优化技术、分布式缓存技术Redis。
2024-05-04 15:53:38 105
转载 「软考高级」系统架构设计精华知识点汇总
在执行交付计划之前,极限编程要求团队对系统的架构做一次预研(架构穿刺),当架构的初始方案确定后,就可以进入每次小版本的交付,每个小版本交付又被划分为多个周期相同的迭代,在迭代过程中,要求执行一些必须的活动,如编写用户故事、故事点估算、验收测试等。是一种近螺旋式的开发方法,提倡测试先行,将复杂的开发过程分解为一个个相对比较简单的小周期,通过交流、反馈、简单、勇气,开发人员和客户可以非常清楚开发进度、变化、待解决的问题、潜在的困难等,并根据实际情况及时的调整开发过程。
2024-04-05 08:41:59 526
转载 微服务场景下的分布式事务解决方案
本地事务在单个数据库上执行的事务,可以利用关系型数据库本身提供的事务特性来实现事务管理。事务的四大特性 ACID1. 原子性:事务是一个不可分割的执行单元,要么全部执行成功,要么全部回滚。2. 一致性:使数据库从一个一致性状态转变到另一个一致性状态。3. 隔离性:事务的执行是相互独立的,互不干扰。4. 持久性:事务的执行结果必须是持久化保存的,事务一旦提交,改变是永久的。事务并发执行的问题1. 丢失更新:[ 写-写 ]2. 读脏数据:[ 写-读 ] 读到尚未提交的数据。
2024-04-05 08:28:22 118
原创 使用keepalived实现mysql主从复制的自动切换
使用Keepalived实现MySQL主从复制的自动切换通常涉及配置一个虚拟IP(VIP)作为MySQL服务器对客户端的访问点。Keepalived会监控MySQL主服务器的健康状况,如果主服务器宕机,Keepalived会自动将虚拟IP移至备用服务器,从而实现故障转移。当主服务器出现问题时,Keepalived会自动将VIP转移到备用服务器上。以下是一个简化的示例配置,假设您已经有两台配置好的MySQL主从服务器(master和slave)和相应的Keepalived。
2024-05-24 20:30:26 240
转载 token 过期后,如何自动续期?
如果经常需要用户重新登录,显然这种体验不是太好,因此很多应用会采用token过期后自动续期的方案,只有特定条件下才会让用户重新登录。首先我们看一个单token方案,这个方案除了可以实现token续期以外,还可以实现某些条件下的强制重新登录。JWT token的 payload 部分是一个json串,是要传递数据的一组声明,这些声明被JWT标准称为claims。另外后端还可以记录刷新token的次数,比如最多刷新50次,如果达到50次,则不再允许刷新,需要用户重新授权。代码语言:javascript。
2024-05-24 20:27:32 5
转载 2PC和3PC的区别是什么?
当一个事务跨越多个节点时,为了保持事务的ACID特性,需要引入一个作为协调者的组件来统一掌控所有节点(称作参与者)的操作结果并最终指示这些节点是否要把操作结果进行真正的提交(比如将更新后的数据写入磁盘等等)。事务协调者(事务管理器)给每个参与者(资源管理器)发送Prepare消息,每个参与者要么直接返回失败(如权限验证失败),要么在本地执行事务,写本地的redo和undo日志,但不提交,到达一种“万事俱备,只欠东风”的状态。参与者根据协调者的指令执行提交或者回滚操作,释放所有事务处理过程中使用的锁资源。
2024-05-24 20:25:07 2
转载 Oracle物化视图(Materialized View)
物化视图主要用在OLAP环境,可以提前运行大量运算并保存结果,为后续查询加速。1.1物化视图应用场景为什么要使用物化视图?假设一个场景,用户每天都需要分析销售数据,而每天产生的数据量都非常庞大,在原始数据上直接运行查询SQL(例如进行sum,avg的操作),速度会非常缓慢。传统的查询优化手段,例如索引、分区、并行执行等,在这种场景下都无法将速度提升到一个可接受的范围。对于这种问题,传统的解决方案是建立一张中间表,提前运行查询SQL并将结果保存下来,当用户查询的时候直接查询结果表。
2024-05-23 06:59:48 10
转载 RocketMQ消息积压原因及处理方法
RocketMQ消息积压是在高并发场景下常见的问题,需要合理的处理策略来保证消息系统的稳定性和性能。通过增加消费者数量、优化消费逻辑、设置消息消费失败的处理机制等方法,可以有效地解决消息积压问题。同时,建立监控和报警机制可以帮助及时发现积压情况并采取措施。合理配置和管理RocketMQ系统,可以确保消息通信的可靠性和高效性。希望本文对你了解如何处理RocketMQ消息积压问题有所帮助。如果有任何问题或建议,请随时提出。
2024-05-23 06:53:34 7
转载 一文读懂DNS和CDN的联系和区别
CDN的全称是Content Delivery Network,即内容分发网络,它能够实时地根据网络流量和各节点的连接、负载状况以及到用户的距离和响应时间等综合信息将用户的请求重新导向离用户最近的服务节点上。其目的是使用户可就近取得所需内容,解决 Internet网络拥挤的状况,提高用户访问网站的响应速度。使用CDN的方法很简单,只需要修改自己的DNS解析,设置一个CNAME指向CDN服务商即可。在使用CDN后,访问过程如下:1.当用户想要访问某个网站,经过本地DNS系统解析。
2024-05-23 06:50:30 8
转载 k8s中使用Feign实现服务间调用
在spring cloud中服务之间的调用我们通常是通过Feign来完成的。Feign作为一个声明式WebService客户端,使用非常的简单,通过在我们的接口上添加注解,我们很容易就实现一个服务调用的客户端。使用注解也可以减少开发的代码量,可以说非常的方便。另外Feign内部也集成了Ribbon从而自动帮我们实现客户端的负载均衡,可以说是spring cloud微服务的必用组件。
2024-05-23 06:47:00 4
转载 hive与hbase对比
Hive和HBase是两个不同的和处理系统,具有以下差异:1、数据模型:Hive是基于Hadoop的关系型数据仓库,支持类SQL语言进行数据查询和处理,在Hadoop中。HBase是一个分布式的列式NoSQL数据库,以键值对的方式存储数据,可以直接访问数据。2、适用场景:Hive适用于那些需要对结构化数据进行查询和分析的场景,通常用于批处理分析,可以处理大量的数据。而HBase适用于需要高速查询和随机访问非结构化数据的场景,可以存储和处理大规模的非结构化数据。
2024-05-19 17:07:43 27
转载 索引的分类
例如,在表的字段 id、name 和 gender 上建立一个多列索引 idx_id_name_gender ,只有在查询条件中使用了字段 id 时该索引才会被使用。单列索引可以是普通索引,也可以是唯一性索引,还可以是全文索引。主键索引就是一种特殊的唯一性索引,在唯一索引的基础上增加了不为空的约束,也就是 NOT NULL + UNIQUE,一张表里最多只有一个主键索引。使用 UNIQUE 参数可以设置索引为唯一性索引,在创建唯一性索引时,限制该索引的值必须是唯一的,但允许有空值。
2024-05-19 15:43:22 9
转载 【软件测试基础】黑盒测试(知识点 + 习题 + 答案
【1】首先进行等价类,几乎所有输入框都可以使用。【2】任何情况下都必须使用边界值,所用涉及数值的,几乎都需要。【3】因果图, 描述多个输入之间的制约关系。【4】决策表(判定表),输入较多时,因果图比较复杂,因此往往使用决策表法替代因果图法。【5】业务流程清晰,事件触发,使用场景法,涉及到使用流程的。【6】状态转移法,不同状态相互转换。【7】参数配置类的软件,组合测试法,输入条件排列组合过多时。【8】错误推测法,使用其他方法都已思考过,将错误推测法设计的用例作为补充。
2024-05-18 17:14:15 48
转载 一文深度讲解JVM 内存分析工具 MAT及实践
1. 前言熟练掌握 MAT 是 Java 高手的必备能力,但实践时大家往往需面对众多功能,眼花缭乱不知如何下手,小编也没有找到一篇完善的教学素材,所以整理本文帮大家系统掌握 MAT 分析工具。本文详细讲解 MAT 众多内存分析工具功能,这些功能组合使用异常强大,熟练使用几乎可以解决所有的堆内存离线分析的问题。我们将功能划分为4类:内存分布详情、对象间依赖、对象状态详情、按条件检索。每大类有多个功能点,本文会逐一讲解各功能的场景及用法。此外,添加了原创或引用案例加强理解和掌握。
2024-05-12 09:11:54 23
转载 JVM-结合MAT工具来分析OOM问题
比如这里就是明显的class com.hailintang.demo.jdk8.gc.oom.Dandan这个类占用了过多内存。这里说了,这个Dandan类的对象有360146个。然后,我们根据方法论,结合MAT工具,一个一个步骤来进行排查。那这个时候需要用到MAT的dominator-tree:就是用来分析对象之间的关系的工具。其实,大家完全可以把MAT这个定位OOM问题的方法论,用到实际工作。好了,到这里,基本上已经找到了具体是哪行代码引起的OOM问题。接下来,我们看看内存过多的对象是被谁引用。
2024-05-12 09:01:01 16
转载 kubernetes搭建自动化部署
随着微服务架构的广泛应用,Kubernetes(简称K8s)作为一款强大的容器编排工具,被广泛用于实现服务的自动化部署、管理和运维。使用docker build -t your-repo/your-image:tag .构建镜像,然后通过docker push your-repo/your-image:tag将其推送到Docker仓库。在Kubernetes中,Deployment负责管理Pod的生命周期,包括自动化的滚动更新、回滚等操作。自动化部署的第一步是构建可部署的Docker镜像。
2024-05-11 20:57:02 28
转载 RUP:用例驱动、以架构为中心的迭代增量开发模式
RUP为软件开发提供了一个结构化的框架,强调用例驱动、以架构为中心的迭代增量开发。通过使用RUP,开发团队可以更有效地理解需求,设计和实现系统,同时提高产品的质量和满足业务目标。然而,应注意的是RUP并非银弹,其效果取决于具体的项目条件和有效的应用。
2024-05-11 20:51:29 48
转载 Nginx详解 五:反向代理
比 weight、ip_hash更加智能的负载均衡算法,fair算法可以根据页面大小和加载时间长短智能地进行负载均衡,也就是根据后端服务器的响应时间 来分配请求,响应时间短的优先分配。当客户端再次请求访问相同资源时,反向代理可以直接返回缓存中的响应,无需二次请求,减少对后端服务器的请求压力,并加快响应速度。按访问的URL的哈希结果来分配请求,使每个URL定向到一台后端服务器,可以进一步提高后端缓存服务器的效率。根据后端服务器的连接状况进行分配客户请求,连接最少的服务器将被有限分配客户端请求。
2024-05-11 20:43:35 14
转载 详解关键路径法,这可能是你能找到的最详尽的了
关键路径法是PMP必考的知识点,我们在编写《PMBOK指南》第六版辅导教材(暂定书名《PMP考试全解读》)的过程中,对其进行了详细的整理说明,除了明确考试的重点,还对其中考生常见的模棱两可的知识点进行了图解说明,现在分享给正在准备参加PMP考试的广大考生。无论是从第0天开始,还是第1天开始,都不会影响关键路径的和浮动时间的计算方法,但是考试中如果弄错了则会影响计算结果,考试中为了简化计算通常采用第0天开始,现实中为了与实际相符合通常采用第1天开始。,是指某项活动能够完成的最早时间。
2024-05-11 20:40:50 58
转载 MQ四大消费问题一锅端:消息不丢失 + 消息积压 + 重复消费 + 消费顺序性
消费者在消费完消息之后,可以手动向RabbitMQ发送确认消息,告知RabbitMQ该消息已经成功消费,RabbitMQ会将该消息标记为已确认,然后删除消息队列中的该消息。采用惰性队列扩大交换器和消费者之间的消息可积压空间,正常队列把消息存放在内存中,可利用空间较小,惰性队列接收到消息后直接存入磁盘而非内存,要消费消息时才会从磁盘中读取并加载到内存,支持数百万数据的存储。消息积压的原因是生产者的消息生产速度大于消费者的消费速度,遇到这个问题的时候,需要排查具体的原因再提出解决方案。
2024-05-11 20:35:48 59
转载 系统架构设计高级技能 · 层次式架构设计理论与实践
XML文档分为两类:一类是以数据为中心的文档,这种文档在结构上是规则的,在内容上是同构的,具有较少的混合内容和嵌套层次,人们只关心文档中的数据而并不关心数据元素的存放顺序,这种文档简称为数据文档,它常用来存储和传输 Web 数据。另一类是以文档为中心的文档,这种文档的结构不规则,内容比较零散,具有较多的混合内容,并且元素之间的顺序是有关的,这种文档常用来在网页上发布描述性信息、产品性能介绍和 E-mail信息等。经过这样的封装,不仅可以达到上述的目标,还可以减少操作数据库的步骤,减少代码编写量。
2024-05-04 16:33:43 65
转载 系统架构设计专业技能 ·结构化需求分析 - 数据流图
加工是用于处理数据流的,所以要补充加工名,可以把该加工涉及到的数据流,在说明中标识出来,再在数据流名称所在的句子中,找。说明中的每一句话,都能与图中有对应关系,当把说明中的实体与数据流标识出来之后,容易缩小对应范围,找出纰漏。(2)检查图中每个加工,是否存在只有入没有出,或只有出没有入,或根据输入的数据无法产生对应的输出的情况。如:生成报告、发出通知、批改作业、记录分数,当然这只是普遍情况,也有例外,如物流跟踪、用户管理。存储的文字方面特征:“**文件”、“**表”、“**库”、“**清单”、“**档案”
2024-05-04 16:27:28 47
转载 系统架构设计专业技能 · 软件工程之UML建模设计
当多个用例共同拥有一种类似的结构和行为的时候,可以将它们的共性抽象成为父用例,其他的用例作为泛化关系中的子用例。在用例的泛化关系中,子用例是父用例的一种特殊形式,子用例继承了父用例所有的结构、行为和关系。构件图描述一个封装的类和它的接口、端口, 以及由内嵌的构件和连接件构成的内部结构。构件图是类图的变体。,包的图标像是一个带标签的文件夹,包的基本思想是把共同工作的元素放到一个文件夹中。也叫计时图,也是一种交互图,用于展示交互过程中的真实时间信息,具体描述对象状态变化的时间点以及维持特定状态的时间段。
2024-05-04 16:21:55 44
转载 系统架构设计专业技能 · 软件工程之需求工程
从软件需求工程的角度来看,需求管理包括在软件开发过程中维持需求一致性和精确性的所有活动,包括控制需求基线,保持项目计划与需求一致,控制单个需求和需求文档的版本情况,管理需求和联系链之间的联系,或管理单个需求和项目其他可交付物之间的依赖关系,跟踪基线中需求的状态。但是,由于采样技术基于统计学原理,样本规模的确定依赖于期望的可信度和已有的先验知识,很大程度上取决于系统分析师的主观因素,对系统分析师个人的经验和能力依赖性很强,要求系统分析师具有较高的水平和丰富的经验。需求的评审需要用户的参与。
2024-05-04 16:14:56 36
转载 系统架构设计高级技能 · 软件架构概念、架构风格、ABSD、架构复用、DSSA
基于事件的隐式调用风格的主要优点是为软件复用提供了强大的支持,为构件的维护和演化带来了方便,其缺点是构件放弃了对系统计算的控制。逻辑视图设计中要注意的主要问题是要保持一个单一的、内聚的对象模型贯穿整个系统,且描述对象模型和对象之间的关系。软件架构复用是系统化的软件开发过程:开发一组基本的软件构件模块,以覆盖不同的需求/体系结构之间的相似性,提高系统开发的效率、质量和性能。构件是独立的过程,连接件是消息传递,构件通常是命名过程,消息传递的方式可以是点对点,异步或者同步的方式,以及远程过程方法调用等。
2024-05-04 16:10:05 121
转载 系统架构设计高级技能 · Web架构设计
Spring是一个轻量级的企业级应用开发框架, 于2004年由Rod Johnson发布了1.0版本, 经过多年的更新迭代, 已经逐渐成为Java开源世界的第一框架, Spring框架号称Java EE应用的一站式解决方案, 与各个优秀的MVC框架如Spring MVC、Struts 2、JSF等可以无缝整合, 与各个OR M框架如Hibernate、My Bat is、JPA等也可以无缝衔接,其他各种技术也因为Spring的存在而被很容易地整合进项目开发之中, 如Red is整合、Log4J整合等等。
2024-05-04 16:06:08 54
转载 系统架构设计专业技能 · 软件工程
扩展机制包括约束(扩展了UML构造块的语义,允许增加新的规则或修改现有的规则)、构造型(扩展UML的词汇,用于定义新的构造块)和标记值(扩展了UML构造块的特性,允许创建新的特殊信息来扩展事物的规格说明)。从软件需求工程的角度来看,需求管理包括在软件开发过程中维持需求一致性和精确性的所有活动,包括控制需求基线,保持项目计划与需求一致,控制单个需求和需求文档的版本情况,管理需求和联系链之间的联系,或管理单个需求和项目其他可交付物之间的依赖关系,跟踪基线中需求的状态。最终形成用例视图,用来得到需求分析模型。
2024-05-04 16:00:17 36
转载 系统架构设计专业技能 · 数据库设计
No SQL(Not-only SQL) :随着互联网web 2.0网站的兴起, 传统的关系数据库在应付web 2.0网站, 特别是超大规模和高并发的SNS类型的web 2.0纯动态网站已经显得力不从心,暴露了很多难以克服的问题,而非关系型的数据库则由于其本身的特点得到了非常迅速的发展。设R(U,F)是属性U上的一个关系模式,X和Y是U的子集,r为R的任意关系,如果对于r中的任意两个元组u,v,只要有u[Y] = v[Y],则称X函数决定于Y,或称Y函数依赖于X,记X → Y,称为函数依赖。
2024-05-04 12:05:13 52
转载 系统架构设计师考试题库重点案例:软件架构设计与评估
面向对象架构:需要扩展对象类或创建新的对象来实现新的折扣规则,开发成本较高。解释器架构风格:可以通过新增规则文件来定义新的折扣规则,开发成本较低。
2024-05-04 11:53:11 47
转载 系统架构设计高级技能 · 系统质量属性与架构评估
从不同的体系结构角度,有三种不同类型的场景,分别是用例(包括对系统典型的使用,还用于引出信息)、增长场景(用于涵盖与它的系统修改)、探测场景(用于涵盖那些可能会对系统造成压迫的极端修改)。获取一组基于属性的体系结构风格的目标在于要把体系结构设计变得更为惯例化、更可预测,并得到一个基于属性的体系结构分析的标准问题集合,使设计与分析之间的联系更为紧密。此外,该分析方法有利于评估体系结构固有的风险。SAAM指导对体系结构的检查,使其主要关注潜在的问题点,如需求冲突,$仅从某一参与者的观点出发的不全面的系统设计。
2024-05-04 11:30:15 79
转载 备考高级系统架构师(笔记记录)-软件架构设计05(软件架构评估)-持续更新ing
本章主要讲架构的评估,为什么进行架构评估,架构评估到底评估的是什么?本章在考试的案例的第一个题应该会考,知识点密集,尽量把分数拿全。
2024-05-03 08:36:26 29
原创 系统架构设计师错题集
在实时操作系统中,两个任务并发执行,一个任务要等待另一个任务发来消息,或建立某个条件后再向前执行,这种制约性合作关系被称为任务的(9)。(9)A.同步 B.互斥 C.调度 D.执行【答案】A【解析】本题考查实时操作系统基础知识》由于资源共享与进程合作,并发执行的任务(进程)之间可能产生相互制约关系,这些制约关系可分为两类:竞争与协作。并发进程之间的竞争关系为互斥,并发进程之间的协作关系体现为同步。同步是因合作进程之间协调彼此的工作而控制S己的执行速度,即因相互合作,相互等待而产生的制
2024-05-02 15:57:28 1093
转载 架构案例分析知识点汇总2
从系统执行效率方面讲,基于DNS的负载均衡机制实现简单,但其通常不能区分服务器的差异,也不能反映服务器的当前运行状态。采用基于反向代理的负载均衡机制,可在代理服务器中引入调速缓存机制,对Web服务器返回的静态页面或图片等静态资源进行缓存,由代理服务器承担对原始服务器的静态资源访问请求,从而进一步降低原始Web服务器的负载。一种自项向下的软件可靠性分析方法,即从软件系统不希望发生的事件(顶事件),特别是对人员和设备的安全及可靠性产生重大影响的事件开始向下逐步追查导致事件发生的原因,直至基本事件(底事件)。
2024-05-01 22:31:18 74
转载 架构案例分析知识点汇总
架构师李工则认为该系统的核心在于数据的定位、汇聚与转换,更适合采用面向资源的架构,即首先为每种数据元素确定地址,然后将各种数据格式统一转换为JSON格式,通过对JSON数据的组合支 持数据的分析与处理任务,处理结果经过渲染后在浏览器的环境中进行展示。现代基于网络的分布式系统开发中,很少有组织会将其全部的数据存储在单个的数据库中,通常需要多个数据库系统组成,数据在这些数据库系统之间可以传送,由多个不同的数据库管理系统控制,构成的是一种分布式的数据架构。模型通过更新视图的数据来反映自身的变化。
2024-05-01 21:51:42 46 1
转载 Redis:主从复制
主从复制,是指将一台Redis服务器的数据,复制到其他的Redis服务器。前者称为主节点(master),后者称为从节点(slave);数据的复制是单向的,只能由主节点到从节点。从 Redis 2.6 开始, 从服务器支持只读模式, 并且该模式为从服务器的默认模式。只读模式由 redis.conf 文件中的 slave-read-only 选项控制, 也可以通过 CONFIG SET parameter value (opens new window)命令来开启或关闭这个模式。
2024-05-01 21:49:34 15
转载 数字证书与数字签名的区别
数字证书和数字签名都是在互联网通讯中保证信息安全的重要工具,但它们有一些明显的区别:数字签名 就是使用个人私密和加密算法加密的摘要和报文,是私人性的。而数字证书是由CA中心派发的.总的来说,数字证书主要用于身份验证和信息加密,而数字签名则主要用于验证信息的真实性和完整性。两者共同协作,可以大大提高互联网通讯的安全性和可靠性3。请注意,涉及信息安全和加密的内容可能会随着技术的发展而不断更新和变化,因此在实际应用中,建议咨询相关领域的专家或查阅最新的技术文档。将按双方约定的HASH计算得到一个固定位数的。
2024-05-01 21:37:59 124
转载 可靠性设计 双机热备份
当一台服务器停机时,可以由双机中的另一台服务器自动将停机服务器的业务接管,从而在不需要人工干预的情况下,保证系统能持续提供服务。以上简要分析了服务器双机热备份技术的概念与方法,在实际应用中,根据网络规模或重要性的大小,双机模式可以扩展提升为多机集群模式,两台以上的服务器组成一个集群,根据应用的实际情况在这些服务器上进行部署,灵活地设置接管策略。比如,可以由一台服务器作为其他所有服务器的备机,也可以设置多重的接管关系等。
2024-05-01 08:49:19 17
vuepress 前后端在一起部署时,需要把前端生成文件放到 springboot识别的目录中
2023-10-05
spring-boot-route-master.zip
2021-08-25
技术案例课职场生涯回顾介绍.zip
2021-01-10
springcloud-demo.zip
2020-12-07
vue2+springbootPRE.zip
2020-11-05
token_demo.zip
2020-10-06
vue 源码分析1.zip
2020-08-29
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人