
软件架构
文章平均质量分 96
软件架构
李宥小哥
C#,Python,大前端,数据库,NoSQL,容器化,PMP,软件架构,开源,工具
展开
专栏收录文章
- 默认排序
- 最新发布
- 最早发布
- 最多阅读
- 最少阅读
-
架构01-演进中的架构
定义:单体架构是一种将所有组件结合成一个单一程序的软件架构风格。出现时间最早、应用范围最广、使用人数最多、统治历史最长的架构风格。“单体”这一概念是在微服务流行后才被“事后追认”的。缺乏专门的开发材料,体现了其简单性和普遍性。成功部分:提出了技术解决方案,解决了分布式环境下的主要技术问题。失败部分:过于复杂的流程和理论限制了其普及。未来展望:微服务时代的开启,带着对SOA架构的自省。定义:微服务是一种通过多个小型服务组合构建单个应用的架构风格,这些服务围绕业务能力而非特定的技术标准来构建。原创 2024-11-27 22:59:34 · 1295 阅读 · 0 评论 -
架构02-访问远程服务
URI只代表资源的位置,具体表现形式应在HTTP请求的头信息中指定(如Accept和Content-Type字段)。:网络上的一个实体或具体信息,可以用URI(统一资源定位符)指向。:每个资源对应一个特定的URI,URI是资源的地址或唯一识别符。:客户端通过HTTP协议操作服务器端资源,实现状态转化。文本:txt、HTML、XML、JSON等格式。:新建资源(也可用于更新资源)图片:JPG、PNG等格式。资源(Resources):文本、图片、服务等。:资源的具体呈现形式。原创 2024-11-28 20:27:10 · 1090 阅读 · 0 评论 -
架构03-事务处理
数据库事务隔离性实现原理。原创 2024-11-29 21:26:37 · 1516 阅读 · 0 评论 -
架构04-透明多级分流系统
*定义:**透明多级分流系统是指在用户请求从客户端发出到最终查询或修改数据库信息的过程中,通过多个技术部件对流量进行合理分配,以提高系统的性能和可靠性。**减少单点部件:**尽量减少系统中的单点部件,如果不可避免,应减少到达这些部件的流量。**奥卡姆剃刀原则:**如无必要,勿增实体。系统设计应尽量简洁,避免不必要的复杂性。原创 2024-11-30 15:24:24 · 953 阅读 · 0 评论 -
架构05-架构安全性
*定义:**系统如何正确分辨出操作用户的真实身份。**重要性:**即使是简陋的信息系统,也不会忽略用户登录功能。**认证、授权与凭证:**解决“你是谁?”、“你能干什么?”、“你如何证明?”三个基本问题。**保密:**加密和解密的统称,通过特殊算法改变信息数据,使未授权用户即使获得加密信息也无法了解真实内容。**易变性:**输入发生任何细微变动,输出结果会产生极大变化。**不可逆性:**从摘要结果无法逆向还原出输入值。校验信息完整性,确保信息在传输过程中未被篡改。原创 2024-12-01 21:03:56 · 1108 阅读 · 0 评论 -
架构06-分布式共识
*提出者:**Leslie Lamport。**地位:**分布式系统最重要的理论基础之一。**背景:**Paxos算法的提出和被认可经历了多次波折。原创 2024-12-03 21:18:18 · 1188 阅读 · 0 评论 -
架构07-从类库到服务
服务发现,路由网关、客户端负载均衡原创 2024-12-03 21:21:02 · 1036 阅读 · 0 评论 -
架构08-流量治理
*定义:**容错性设计(Design for Failure)是微服务架构的核心原则之一,旨在确保系统在部分组件出现故障时仍能继续运行。**重要性:**分布式系统的本质是不可靠的,容易出现程序崩溃、节点宕机、网络中断等问题。因此,容错性设计对于保证系统的可用性和稳定性至关重要。原创 2024-12-04 21:41:44 · 910 阅读 · 0 评论 -
架构09-可靠通信
【代码】架构09-可靠通信。原创 2024-12-04 21:46:31 · 1292 阅读 · 0 评论 -
架构10-可观测性
*定义:**可观测性是指“可以由系统的外部输出推断其内部状态的程度”。**日志收集:**记录离散事件,通过这些记录事后分析出程序的行为。**链路追踪:**主要用于排查故障,分析调用链的哪一部分、哪个方法出现错误或阻塞,输入输出是否符合预期。**聚合度量:**对系统中某一类信息的统计聚合,主要用于监控和预警,当某些度量指标达到风险阈值时触发事件。**计数度量器(Counter):**对有相同量纲、可加减数值的合计量,例如销售额、服务调用次数等。原创 2024-12-04 21:50:27 · 1276 阅读 · 0 评论 -
架构11-虚拟化容器
【代码】架构11-虚拟化容器。原创 2024-12-10 22:39:06 · 1456 阅读 · 0 评论 -
架构12-容器间网络
容器网络原创 2024-12-10 22:40:32 · 1185 阅读 · 0 评论 -
架构13-持久化存储
【代码】架构13-持久化存储。原创 2024-12-10 22:41:52 · 1349 阅读 · 0 评论 -
架构14-资源与调度
在 Kubernetes 中,资源模型是一个非常重要的概念,它涉及如何管理和分配集群中的资源,以确保 Pod 能够在最合适的节点上运行。资源模型不仅包括物理资源,如处理器、内存、存储和网络资源,还包括各种抽象资源,如策略、依赖、权限等。在 Kubernetes 中,为了更好地管理和分配集群资源,确保重要服务的稳定性和资源利用率的最大化,引入了服务质量(Quality of Service, QoS)和优先级(Priority)两个重要概念。原创 2024-12-10 22:43:35 · 1320 阅读 · 2 评论 -
架构15-服务网格
服务网格原创 2024-12-10 22:44:58 · 1353 阅读 · 0 评论 -
架构16-向微服务迈进
向微服务迈进原创 2024-12-10 22:47:13 · 1094 阅读 · 0 评论 -
架构实践01-基础概念
架构:软件系统的顶层结构,描述了系统的整体设计和组成部分之间的关系。框架:组件规范,提供基础功能的产品,帮助开发者实现功能。组件:自包含、可编程、可重用的软件单元。模块:逻辑上划分的系统单元,负责特定的职责。系统:由关联个体组成的整体,具有新的能力。子系统:更大系统中的一部分,同样由关联个体组成。无中断:系统在任何情况下都能无中断地执行其功能。难点:无论是硬件还是软件,都无法做到绝对无中断,外部环境(如断电、自然灾害)更是不可控的。原创 2024-12-14 19:34:50 · 1248 阅读 · 0 评论 -
架构实践02-高性能架构模式
Reactor 与Proactor。原创 2024-12-14 19:36:59 · 1696 阅读 · 0 评论 -
架构实践03-高可用架构模式
FMEA(Failure Mode and Effects Analysis,故障模式与影响分析) 是一种广泛应用于各个行业的可用性分析方法。它通过分析系统潜在的故障模式及其影响,帮助识别和解决架构中的可用性隐患。异地:地理位置上不同的地方,类似于“不要把鸡蛋都放在同一篮子里”。多活:不同地理位置上的系统都能提供业务服务,这里的“活”是活动、活跃的意思。目标:在灾难性故障的情况下,业务不受影响或在几分钟内迅速恢复。原创 2024-12-14 19:39:28 · 1596 阅读 · 0 评论 -
架构实践04-高扩展架构模式
【代码】架构实践04-高扩展架构模式。原创 2024-12-14 19:40:44 · 1082 阅读 · 0 评论 -
架构实践05-互联网架构模板
SQL(关系数据库):特点:开源免费,性能相对较差。解决方案:数据库拆分、中间件(如DBProxy、TDDL)、SQL存储平台(如UMP)。挑战:性能要求高,数据拆分和组合复杂。NoSQL(非关系数据库):特点:数据结构多样,性能优越。应用场景:补充关系数据库,广泛应用于互联网行业。解决方案:集群功能、NoSQL存储平台(如Memcache、Redis)。挑战:大规模应用时需要集中管理和资源优化。小文件存储:特点:数据小、数量巨大、访问量大。原创 2024-12-14 19:43:50 · 1383 阅读 · 0 评论