- 博客(1078)
- 资源 (203)
- 收藏
- 关注
转载 「软考高级」系统架构设计精华知识点汇总
在执行交付计划之前,极限编程要求团队对系统的架构做一次预研(架构穿刺),当架构的初始方案确定后,就可以进入每次小版本的交付,每个小版本交付又被划分为多个周期相同的迭代,在迭代过程中,要求执行一些必须的活动,如编写用户故事、故事点估算、验收测试等。是一种近螺旋式的开发方法,提倡测试先行,将复杂的开发过程分解为一个个相对比较简单的小周期,通过交流、反馈、简单、勇气,开发人员和客户可以非常清楚开发进度、变化、待解决的问题、潜在的困难等,并根据实际情况及时的调整开发过程。
2024-04-05 08:41:59 48
转载 微服务场景下的分布式事务解决方案
本地事务在单个数据库上执行的事务,可以利用关系型数据库本身提供的事务特性来实现事务管理。事务的四大特性 ACID1. 原子性:事务是一个不可分割的执行单元,要么全部执行成功,要么全部回滚。2. 一致性:使数据库从一个一致性状态转变到另一个一致性状态。3. 隔离性:事务的执行是相互独立的,互不干扰。4. 持久性:事务的执行结果必须是持久化保存的,事务一旦提交,改变是永久的。事务并发执行的问题1. 丢失更新:[ 写-写 ]2. 读脏数据:[ 写-读 ] 读到尚未提交的数据。
2024-04-05 08:28:22 33
转载 程序员的职业生涯,一个年薪50万程序员的自述
目前在二线城市-郑州一家30人的软件公司担任研发总监岗位,将近13年的程序员生涯,分享一些经验,更多的可能是教训吧,希望对题主有些帮助。首先分享一下我的程序员职业生涯发展经历,还是以工作年限和收入为主线来描述吧,比较直观,钱 一定是大家比较关注的点。下图中纵坐标为我的年薪收入,横坐标为工作年限,2010年毕业,至今13年了。首先我是一个很普通的人,农村出身,父母没什么文化,更没什么背景。从一个山里的高中,费了九牛二虎之力考上了一个二本大学。当年我们那届高中毕业生,整个学校考上二本以上的人只有4个。
2024-01-13 09:15:30 88
转载 Docker 入门终极指南,详细版!别再说不会用 Docker 了!
容器化技术必将是云时代不可或缺的技能之一,而Docker只是沧海一粟。随之而来的还有集群容器管理K8sIstio等技术。打开Docker的大门,不断抽丝剥茧,逐层深入,你将感受到容器化的无穷魅力。来源:jartto.wang/2020/07/04/learn-docker。
2023-08-06 08:08:21 99
转载 《SysML精粹》学习记录--第十一章
需求图是SysML中的主要媒介,可用于向利益相关者传达建模者设计各个方面的信息。基于文字的需求(以包含它们的需求说明书)在传统上是系统工程中的重要产品。越来越被广泛使用的技术是创建用例(以及相关案例叙述)来替代基于文字的功能性需求,创建约束表达式来替换基于文字的非功能性需求。需求图可以帮助看图者确定从需求到系统模型中依赖于它的元素的可跟踪性。系统模型依赖的最常见的类型包括模块、用例、测试案例和其他需求。
2024-04-16 22:01:35 15
转载 UML2.0最新版入门图解
关联是一种拥有的关系,具有方向性,如果一个类单方向的访问另一个类,则称为单向关联(用一个箭头的实线表示);部署图包括了组件图中的符号,另外还增加了节点的概念,节点主要包括处理器(如计算机主机)和设备(如打印机),UML图中使用三维立方体表示节点,节点的名称位于立方体的顶部。整体与部分的关系,当某个实体聚合成另一个实体时,该实体还可以是另一个实体的部分,例如,学生既可以是足球俱乐部的成员,也可以是羽毛球俱乐部的成员。其中,最常用的UML图包括:用例图,类图,组件图,部署图,顺序图,活动图,状态机图等。
2024-04-16 21:58:25 10
转载 LVS负载均衡(LVS简介、三种工作模式、十种调度算法)
其中,IP隧道(IP tunning)是一种数据包封装技术,它可以将原始数据包封装并添加新的包头(内容包括新的源地址及端口、目标地址及端口),从而实现将一个目标为调度器的VIP地址的数据包封装,通过隧道转发给后端的真实服务器(Real Server),通过将客户端发往调度器的原始数据包封装,并在其基础上添加新的数据包头(修改目标地址为调度器选择出来的真实服务器的IP地址及对应端口),LVS(TUN)模式要求真实服务器可以直接与外部网络连接,真实服务器在收到请求数据包后直接给客户端主机响应数据。
2024-04-16 21:54:47 28
原创 谈谈我的软考高级考证之路(系统架构设计师篇)
除了过程段的内容需要考试当天临场发挥之外,其他段的内容都可以提前准备背住。其次不管有没有做过项目,提前定一个项目背景。一个论文通用模板+一个固定项目背景,不管论文是什么题目,论文的结构可以直接套用通用模板,结构和框架相同,只需要替换内容就好了。在准备论文时,建议多参考网上的论文范文,再自己模仿着撰写至少三篇涉及不同主题的论文,特别是关于架构设计方向的内容。然后再写几篇最近比较流行技术主题的论文,例如云原生、区块链或Web3等,那论文基本就没啥问题了。
2024-04-13 10:51:04 689
转载 2023年软考系统架构师考题分享
够惊喜的,但也不意外,咱们考试之前也分析过,必选题有可能会变,还真的变了,变成大数据了,这就引来了很多小伙伴的吐槽,并不是所有的公司都需要大数据的,尤其对于中小型公司,数据体量达不到,强行上大数据是不是有点为了技术而技术的感觉,就像马斯克喊下云,别人都在喊上云,马斯克发现上了云之后人员徒增,成本也涨了,那我上云的意义是什么?(I) kafka;下图1给出了某网奥运的大数据架构图,请根据下面的 (a)~ (n) 的相关技术,判断这些技术属于架构图的哪个部分,补充完善下图1的 (1) - (9) 的空白处。
2024-04-13 10:47:57 86
转载 软考架构案例之大数据架构
前不久参加了11月份的软考系统架构师,下午案例中还是有很多的架构相关的知识点,比如大数据架构和动静分离架构图等等。其中大数据架构的题目是填空Lambda和Kappa架构的架构图各个层次的组成部分,还有一个大数据架构的特点以及两种架构对比的维度,这个题目是案例第一题必选,分值25分。那么,今天就来解答一下这个题目并以大数据架构为主题分享一下官方软考大纲中的大数据架构。
2024-04-13 10:46:51 32
转载 系统架构设计师案例分析知识点总结(更新到2023年最新知识点)
这篇文章是我去年考架构时总结下来的案例知识点,内容是根据刷题和平时的一些积累所总结的,个人觉得非常具有参考价值,希望各位备考的同学可以在考前一个月打印出来,每天早晚复习几条,最主要是加强理解,案例方面主要还是靠平时的积累,考试时即使碰到陌生的题目,也不会太慌乱。案例解题秘籍:1.案例题怎么选择,拿到题后,先用3分钟时间看一下这五道题,哪些是你熟悉一些的,哪些知识点不熟悉,对每个题目的每一问逐条做一个估分,如果当前题目拿不了15+,就看下一个,选题主要目标是选中的三个题目分数都有能超过15分的
2024-04-13 10:44:45 55
转载 缓存一致性问题解决方案
删除缓存有两种方式针对缓存一致性要求不是很高的场景,那么只通过设置超时时间就可以了延迟双删用比较简洁的方式实现 mysql 和 redis 数据最终一致性,但它不是强一致。延迟,是因为 mysql 和 redis 主从节点数据同步不是实时的,所以需要等待一段时间,去增强它们的数据一致性。延迟是指当前请求逻辑处理延时,而不是当前线程或进程睡眠延迟。
2024-04-13 08:13:48 18
转载 深入学习MySQL 02 日志系统:bin log,redo log,undo log
实际事物的执行顺序如下: A.将id=1的行name的值读取到内存中 B.记录id=1的行name=ken到undo log C.修改name=wk D.记录相应数据页的修改到redo log,并更新内存中的数据 E.将id=2的行name的值读取到内存中 F.记录id=2的行name=lj到undo log G.修改name=lj H.记录相应数据页的修改到redo log,并更新内存中的数据 I.记录事务中所有SQL的逻辑操作到bin log J.提交事务 K.MySql。
2024-04-13 08:02:19 6
转载 分布式事务XA、AT、TCC、SAGA
事务强一致性,满足ACID原则常用数据库都支持,实现简单,没有代码侵入 缺点:因为一阶段需要锁定数据库资源,等待二阶段结束才释放,所以性能较差依赖关系型数据库实现事务XA模式一阶段不提交事务,锁定资源;AT模式一阶段直接提交,不锁定资源。XA模式依赖数据库机制实现回滚;AT模式利用数据快照实现数据回滚。XA模式强一致;AT模式最终一致一阶段完成直接提交事务,释放数据库资源,性能比较好利用全局锁实现读写隔离没有代码侵入,框架自动完成回滚和提交。
2024-04-13 07:56:11 3
转载 分布式事务-XA和AT模式
XA 规范 是 X/Open 组织定义的分布式事务处理(DTP,Distributed Transaction Processing)标准,XA 规范 描述了全局的TM与局部的RM之间的接口,几乎所有主流的数据库都对 XA 规范 提供了支持。AT模式中的快照生成、回滚等动作都是由框架自动完成,没有任何代码侵入,因此实现非常简单。AT模式同样是分阶段提交的事务模型,不过缺弥补了XA模型中资源锁定周期过长的缺陷。XA是规范,目前主流数据库都实现了这种规范,实现的原理都是基于两阶段提交。
2024-04-13 07:19:45 14
转载 高可用集群架构Keepalived双机主备原理
当我们的主节点坏掉之后,用户的所有请求都是请求不了,用户在请求我们的网站,或者调用相应的接口,其实它是访问不了的,因为我们主节点的Nginx是挂掉的。接下来我们来看一下Nginx的高可用,目前,用户在访问网站时,是先直接访问到Nginx,然后Nginx下面挂着一个Tomcat集群,Tomcat在集群环境下是彼此协调,如果有一台Tomcat宕机了,其他的Tomcat还是能够继续为用户提供服务的,这是没有问题的。当然,用户并不是直接访问的IP,而是在一开始请求到域名,域名又会涉及到DNS解析的一个过程。
2024-04-13 06:53:51 8
转载 【软考系统架构设计师】DSSA特定领域软件架构
本阶段的重点是确定什么在感兴趣的领域中以及本过程到何时结束。这个阶段的一个主要输出是领域中的应用需要满足一系列用户的需求。这是DSSA(领域特定软件体系结构)过程的初始阶段。在此阶段,领域专家和系统架构师确定DSSA的关注领域。他们识别出关键的业务、系统和技术方面,这些方面是DSSA需要支持的。此外,该阶段还定义了DSSA的边界和范围,以避免与不相关的系统或业务领域产生混淆。本阶段的目标是编译领域字典和领域术语的同义词词典。
2024-04-13 06:50:00 13
转载 计算机网络基础知识
1. SYN Flooding: 同步包风暴,利用TCP三次握手,发送大量伪造的TCP连接请求,三次握手,只进行了两次,7. 应用层:HTTP、FTP、SMTP、POP3、Telnet | TFTP、DNS、SNMP、DHCP。【DHCP】动态主机配置协议,为主机分配IP地址:固定分配、动态分配、自动分配。【接入层】用户接入、计费管理、MAC地址认证、MAC地址过滤、收集用户信息,可以使用集线器代替交换机。【单模光纤】半径小、激光二极管LD、只能传输1种信号、可靠性高,适合“长距离”传输。
2024-04-06 09:30:10 36
转载 系统架构核心概念梳理
流程图:面向过程,描述系统中某个业务模块的程序逻辑结构,各处理过程之间有严格的顺序和时间关系,某个时间点只能处于一个处理过程,只能描述顺序执行的过程,不能描述有关的数据。状态图:描述对象在生命周期内响应事件所经历的一系列状态以及状态间的转移,着重表现对象的状态变化,强调对象基于事件反应的动态行为,适合用于反应式系统建模,能够表示对象状态和事件之间的关系。协作图:描述整个系统的对象之间的协作关系,强调接收和发送消息的对象的结构组织,通常表示较高层次的概览性视图,更关注参与交互的对象之间的结构组织和协作关系。
2024-04-06 09:28:22 32
转载 详解Redis集群的三种实现方案
Redis集群是由多个redis实例组成的集合,将缓存的数据分散到多个redis节点上存储,减轻单个缓存节点的访问压力,达到分流效果,提高了存储容量和吞吐量,提供高可用性和容错恢复能力,实现了水平扩容。1.主从(Master-Slave)模式适用于数据备份、读写分离、对可用性要求不高,小规模数据处理的场景。不提供容错和恢复功能,主节点故障时需要手动切换。2.哨兵(Sentinel)模式在主从复制的基础上,提供了故障自动处理的能力,适用于数据备份、容灾恢复、高可用性的场景。
2024-04-05 08:21:48 31
转载 一文详解最常见的六种跨域解决方案
跨域就是当在页面上发送ajax请求时,由于浏览器同源策略的限制,要求当前页面和服务端必须同源,也就是协议、域名和端口号必须一致。如果协议、域名和端口号中有其中一个不一致,则浏览器视为跨域,进行拦截。jsonp的原理是利用了script标签不受浏览器同源策略的限制,img和link标签也是不受浏览器同源策略限制的。跨域是浏览器限制,服务端和服务端之间通信是不受浏览器同源策略限制的。所有跨域的解决方案都是需要服务端配合的。最常用的跨域解决方案是CORS、Node代理服务器和Nginx反向代理方式。
2024-04-04 08:21:11 22
转载 SysML 第一讲:SysML简介
我们为什么需要MBSE?因为基于文本方法(Text - base approch,Traditional System Engineering)对于系统工程师来说是昂贵的,因此我们需要MBSE。MBSE的产物是集成性、联通性和一致性的系统模型。所有的图表和自动生成的文本产区都仅仅是系统模型的一种视图。MBSE的三大支柱:建模语言、建模方法和建模工具。当新设计决策和利益攸关者的需求等改变进入系统生命周期中。首先,SysML是一种语言。用于将Idea 通过沟通从一个地方传递另一个地方。
2024-04-04 07:59:22 100
转载 [架构之路-204]- 常见的需求分析技术:结构化分析与面向对象分析
需求获取=>业务需求=》用户需求:目的是获取客户的真实需求,而不是分析客户的需求,因此,需求获取不会对客户的需求进行主观或客观的评判,收集原始的需求是主要的目标!!!因此,以用户故事、业务场景、用例图等输出为主!!!需求获取是完全站在客户的角度,定义用户的需求!!!把目标系统完成看成一个黑盒子,站在黑盒外部,对信息系统提出需求。需求分析=》功能需求、非功能需求:就是把客户的需求变成软件产品的需求!!!!得到软件或产品的需求规格说明书!!!是站在产品经理和系统工程师的角度,对软件系统提出的需求!!!
2024-03-31 10:56:53 39
转载 双机热备架构 双机热备优缺点
双机热备:双机热备双机管理软件可以根据心跳自动检测环境运行情况,如果发现一个节点挂掉了,会自动切换到另外一个节点上运行,前台用户根本看不出。缺点是如果在切换过程中两个节点都挂掉数据很容易丢失掉。。
2024-03-31 09:29:24 76
转载 Keepalived + Nginx 实现高可用
nginx作为一款企业级的代理服务器,在各种企业事业单位中,均有广泛的使用,尤其是在前后端分离的项目中,nginx作为路由转发的功能是非常常用的。在一些流量比较大的项目中,为了应对高并发的场景,后端服务往往采用集群部署,这时候,就需要使用到nginx的负载均衡功能,从而避免应用节点的单节点故障问题。那么针对nginx的单节点故障问题,我们在实际生产中又应当如何避免呢?
2024-03-31 09:14:53 56
转载 详解Sharding-JDBC的概念
的时候,大多是以水平切分模式(水平分库、分表)为基础来说的,数据分片将原本一张数据量较大的表 t_order 拆分生成数个表结构完全一致的小数据量表 t_order_0、t_order_1、···、t_order_n,每张表只存储原大表中的一部分数据,当执行一条SQL时会通过 分库策略、分片策略 将数据分散到不同的数据库、表内。用于分片的数据库字段。我们将 表分片以后,当执行一条SQL时,通过对字段 order_id 取模的方式来决定,这条数据该在哪个数据库中的哪个表中执行,此时 字段就是 表的分片健。
2024-03-30 07:17:19 17
转载 MySQL有哪些集群架构 mysql常用的集群方案
MySQL的集群方案有多种,按照实现途径可以分为MySQL官方和第三方。1)官方实现方式包括:主从方式、一主多从方式、cluster集群方式等。2)第三方实现方式包括:MMM(双主多从)方式、MHA(多主多从)方式、Galera Cluster(多主结构)方式等。
2024-03-30 07:10:16 101
转载 Redis集群搭建准备,了解一致性哈希算法和哈希槽
在握手成功后,两个节点之间会定期发送ping/pong消息,交换数据信息,在redis节点发送心跳包时需要把所有的槽信息放到这个心跳包里,以便让节点知道当前集群信息,在发送心跳包时使用char进行bitmap压缩后是2k(16384÷8÷1024=2kb),也就是说使用2k的空间创建了16k的槽数。一个redis节点包含N个槽,数据通过hash算法哈希到固定的槽里,所以槽只是决定了数据的存放位置,当多个数据hash出来的结果相同时,他们就被分配到相同的槽里,即也会映射到相同的服务节点上。
2024-03-30 07:04:06 32
转载 聚簇索引和非聚簇索引
而在InnoDB中,聚簇索引的B+树的叶子节点是一个数据页,默认大小为16K,这些叶子节点,也就是数据页的数据其实是一个有序链表,会按照主键递增的顺序来存储。在InnoBD中通过主键来聚簇数据,也就是说聚簇索引的的B+树上的叶子节点所存储的key总是主键值,如果没有定义主键,InnoDB会选择一个唯一的非空索引来代替,如果也没有这样的索引,InnoDB会隐式地定义一个主键来聚簇数据,这个隐式的主键被称为 rowID。因此, 给表添加索引,会增加表的体积, 占用磁盘存储空间。,既Key和指向子节点的指针。
2024-03-24 10:01:06 45
转载 数据库系统(四)---关系型数据库设计及E-R图
3.联系,用菱形表示,写明联系的名称,用无向边分别与有关实体连接起来,同时在无向边旁标注联系的类型(1:1、1:N 或 M:N),如果一个联系具有属性, 则这些属性也要用无向边与该联系连接起来。3)逻辑结构设计阶段,将 E-R 图转换成具体的数据库产品支持的关系数据模型,形成数据库逻辑模式,然后根据用户处理的要求、安全性的考虑,在基本表的基础上再建立必要的视图,形成数据的外模式;4)物理结构的设计阶段,根据关系数据库管理系统的特点和处理的需要,进行物理存储安排,建立索引,形成数据库内模式。
2024-03-24 09:33:05 115
转载 区块链探秘:从基础到深度,全面解读区块链技术与应用
区块链是一种按照时间顺序将数据区块以顺序相连的方式组合成的一种链式数据结构,并以密码学的方式保证不可篡改和不可伪造的分布式账本。在分布式计算理论中:共识是指在计算过程中需要的某些数据值达成一致在区块链中:共识是指所有共识节点(参与验证节点)按照相同顺序执行交易,写入账本我们把存在作恶节点的系统成为拜占庭错误,否则称为非拜占庭错误,相应地,把能够应对拜占庭错误的共识算法称为拜占庭容错的,否则为非拜占庭容错的。比特币是由一系列概念和技术作为基础构建的数字货币生态系统。
2024-03-24 09:30:19 56
转载 【数据仓库】即席查询
即席查询(Ad Hoc)是用户根据自己的需求,灵活的选择查询条件,系统能够根据用户的选择生成相应的统计报表。即席查询与普通应用查询最大的不同是普通的应用查询是定制开发的,而即席查询是由用户自定义查询条件的。
2024-03-24 09:28:00 65
转载 Impala的介绍、使用和原理架构
impala是cloudera提供的一款高效率的sql查询工具,提供实时的查询效果,官方测试性能比hive快10到100倍,其sql查询比sparkSQL还要更加快速,号称是当前大数据领域最快的查询sql工具,impala是参照谷歌的新三篇论文(Caffeine–网络搜索引擎、Pregel–分布式图计算、Dremel–交互式分析工具)当中的Dremel实现而来,其中旧三篇论文分别是(BigTable,GFS,MapReduce)分别对应我们即将学的HBase和已经学过的HDFS以及MapReduce。
2024-03-18 21:50:24 45
转载 4 种策略让 MySQL 和 Redis 数据保持一致
Read Through 和 WriteThrough 的流程类似,只是在客户端查询数据A时,如果缓存中数据A失效了(过期或被驱逐淘汰),则缓存会同步去数据库中查询数据A,并缓存起来,再返回给客户端。可见,最后缓存中的数据A和数据库中的数据 A 是一致的,理论上可能会出现一小段时间数据不一致,不过这种概率也比较低,大部分的业务也不会有太大的问题。可见,最后缓存中的数据 A 跟数据库中的数据 A 是不一致的,缓存中的数据A是旧的脏数据。客户端1 更新缓存中数据 A,缓存同步更新数据库中数据 A,再返回结果。
2024-03-18 21:46:55 26
转载 【分布式存储】聊一下分布式存储中分片机制
在服务端领域,主要特点是支撑7*24小时不间断的服务,而最终对各种行为会生产对应的数据,比如用户登陆/注册,发起订单交易、支付、身份验证,短信验证等情况都需要存储起来,其中包括各种各样的数据,而采用格式的存储中间件进行保存数据,可以有效的进行数据查询和存储,比如MySQL支持关系型数据的存储,Redis支持NoSQL,ES支持快速查询等。在各种存储中间件中,也会出现节点的下线和上线,所以为保证数据可以均匀的落在每个节点上,在发生节点删除和增加的时候,不会出现大规模数据访问和迁移的情况。
2024-03-17 16:46:49 22
转载 mybatis与hibernate的区别
数据量:有以下情况最好选用Mybatis如果有超过千万级别的表;如果有单次业务大批量数据提交的需求(百万条及以上的),这个尤其不建议用Hibernate;如果有单次业务大批量读取需求(百万条及以上的)(注,hibernate多表查询比较费劲,用不好很容易造成性能问题);表关联复杂度如果主要业务表的关联表超过20个(大概值),不建议使用hibernate人员如果开发成员多数不是多年使用hibernate的情况,建议使用mybatis数据库对于项目的重要程度。
2024-03-17 15:40:37 23
转载 聚集索引和非聚集索引的区别
但您结合“部首目录”和“检字表”而查到的字的排序并不是真正的正文的排序方法,比如您查“张”字,我们可以看到在查部首之后的检字表中“张”的页码是672页,检字表中“张”的上面是“驰”字,但页码却是63页,“张”的下面是“弩”字,页面是390页。分析:如果认为是的朋友,可能是受系统默认设置的影响,一般我们指定一个表的主键,如果这个表之前没有聚集索引,同时建立主键时候没有强制指定使用非聚集索引,SQL会默认在此字段上创建一个聚集索引,而主键都是唯一的,所以理所当然的认为创建聚集索引的字段也需要唯一。
2024-03-17 10:05:10 32
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关注的人