![](https://img-blog.csdnimg.cn/20201014180756754.png?x-oss-process=image/resize,m_fixed,h_64,w_64)
软件架构
文章平均质量分 92
夜雨风云
求实求真
展开
-
面向对象的基本原则
面向对象需要把握的核心原则是关注点分离。而实现关注点分离,就是要做到"高内聚"和"松耦合"。在面向对象领域,主要指以下七个原则:(1) 单一职责原则;(2) 开闭原则;(3) 里氏替换原则;(4) 接口隔离原则;(5) 依赖倒置原则;(6) 迪米特法则;(7) 组合/聚合复用原则。原创 2023-08-13 14:46:32 · 127 阅读 · 0 评论 -
数据库设计规范
现代软件架构的复杂性要求需要多人或多团队协同完成开发。在这种背景下,如何高效地协同完成软件的开发呢?对软件工程来说,数据库设计规范是在数据库设计层面对软件开发者的规范或标准。对软件来说,适当的规范和标准绝不是为了消除代码内容的创造性、优雅性,而是**限制过度个性化,并以一种普遍认可的统一方式一起做事,提升协作效率,降低沟通成本**。代码的字里行间流淌的是软件系统的血液,质量的提升是**尽可能少踩坑,杜绝踩重复的坑**,切实提升系统稳定性,码出质量。原创 2022-11-06 18:27:35 · 2014 阅读 · 0 评论 -
分布式系统(Distributed Systems)概述
随着互联网的持续发展(以Web应用为代表)、计算机应用的深入、分布式系统构建技术的日益成熟,分布式系统逐渐深入到人们的日常生活,并渗透到社会、经济、文化生活的各个方面。现如今,分布式系统已成为主流的软件系统。本文主要介绍下分布式系统的特征和在进行分布式系统设计过程中所必须解决的问题:可伸缩性、异构性、安全性和故障处理等。原创 2022-11-05 19:39:52 · 8461 阅读 · 3 评论 -
闩锁和锁(Latches and Locks)
日常的开发中,经常听到闩锁和锁。可能我们对锁的了解要多一些(如数据库锁、线程锁、分布式锁等),但是对闩锁可能了解不多。本文将从锁和闩锁的分类出发,介绍下闩锁和锁的相同与不同,以及各自的应用场景。原创 2022-10-30 20:08:58 · 1314 阅读 · 0 评论 -
分布式事务(Distributed Transactions)概述
分布式事务是分布式领域必须要面对的问题,同时也是衡量一个分布式系统成熟度的重要指标。那么什么是分布式事务,哪些场景会涉及到分布式事务,如何实现分布式事务?本文将重点讨论以上问题。原创 2021-04-25 23:53:19 · 866 阅读 · 0 评论 -
基于Redis实现分布式锁(理论篇)
多进程环境下,为避免多节点重复工作,以减少不必要的资源浪费或保证业务的正确性,常使用分布式锁来实现。在分布式锁的多种实现方案(基于数据库、基于 Zookeeper 、基于 Chubby、基于缓存等)中,基于缓存组件实现的分布式锁成为大多数业务的选择。(相比数据库、Zookeeper 、Chubby等组件,缓存组件具有更高的性能,且大多数业务均已引入缓存组件)。在缓存组件的选择上,Redis已成为主流选择。本文梳理下基于Redis实现分布式锁的常见问题,避免在同一个问题上重复踩坑,方便后学者。原创 2022-10-22 22:05:51 · 1691 阅读 · 0 评论 -
分布式锁(Distributed Lock)理论介绍
在多线程环境中,线程之间通常使用互斥锁实现共享资源的独占访问。在多进程环境,特别是分布式环境,常使用分布式锁来实现共享资源的独占访问。简单来说,分布式锁就是指在分布式环境下,通过加解锁实现多节点对共享资源的互斥访问。原创 2022-10-16 23:33:51 · 4033 阅读 · 0 评论 -
BASE理论
BASE理论是Dan Pritchett于2008年在CAP 理论的基础上提出的。BASE 理论是对 CAP理论中AP方案的一个补充。Base理论强调即使系统无法做到强一致性(Strong Consistent),但每个应用都可以根据自身业务特点,使用适当的方法来使系统达到最终一致性(Eventually Consistent)。原创 2022-10-16 15:01:51 · 1463 阅读 · 1 评论 -
BASE理论(译文)
BASE 理论是 eBay 的系统架构师 Dan Pritchett 于 2008 年在 ACM 上发表的论文《Base: An Acid Alternative》中提出的。 BASE 理论引入最终一致性的概念,并系统性地总结了一种针对分布式事务的技术手段,其理论价值巨大。这里记录下原文的翻译过程,方便后学者。翻译 2022-10-16 11:50:33 · 639 阅读 · 0 评论 -
软件幂等性(Software Idempotence)
幂等性是一个数学和计算机科学领域的概念,公式表示为。简单来说,幂等性就是一个操作一次执行与多次执行产生的结果是一致的。幂等性是分布式系统设计中十分重要的概念,具有这一性质的接口在设计时总是秉持这样的一种理念:调用接口发生异常并且重复尝试时,总是会造成系统所无法承受的损失,所以必须阻止这种现象的发生。分布式系统在操作执行失败时,有时会选择“重试”,如果接口不具备“幂等性”,则会带来逻辑错误问题。原创 2022-09-25 23:42:19 · 831 阅读 · 0 评论 -
软件系统缓存设计
缓存(cache)是用于存储数据的硬件或软件的组成部分,以使得后续更快访问相应的数据。简单来说,缓存就是数据交换的缓冲区。缓存是一种空间换时间的设计。缓存中的数据可能是提前计算好的结果、数据的副本等。典型的应用场景:有 CPU cache,磁盘 cache,进程内缓存,分布式缓存,数据库缓存等。原创 2022-09-11 23:39:43 · 1751 阅读 · 0 评论 -
鸿沟理论(The Chasm Theory)介绍
鸿沟理论由Jeffery Moore(杰弗里 摩尔)于1991年提出,距今已有 30 年时间,但该理论至今依然奏效,另外该理论也在 CNCF 项目的中得到应用。本文将介绍”鸿沟理论“相关的一些知识,希望能够引发大家对技术选型、新技术推广的一些思考。...原创 2022-07-10 20:02:43 · 7072 阅读 · 0 评论 -
类库、框架、模块、组件等概念介绍
在软件架构介绍一文,将软件架构本质定性为元素(element)和这些元素之间的关系(relation)。这里,汇总下软件架构中常见的元素,方便统一交流。这些元素包括但不限于类库、框架、模块、组件、服务、平台等。 ......原创 2022-06-19 22:08:58 · 2717 阅读 · 0 评论 -
软件架构介绍
架构显然很重要。许多开发人员的目标是成为一名架构师。但什么是架构,为什么架构如此重要?为了回答这个问题,这里首先定义软件架构的含义。然后,讨论应用程序的架构是多维的,并使用一组视图或蓝图进行描述。接着,本文将强调软件架构的重要性,因为它对应用程序的质量有显著的影响。 ...原创 2022-06-19 20:49:13 · 4898 阅读 · 0 评论 -
CAP理论
在基于微服务架构构建分布式系统时,需要考虑分布式系统的八个谬论。总结来说,分布式系统谬论强调网络的不可靠性(节点、延迟、带宽、安全、拓扑、异构、传输成本、多管理员)。对于分布式系统,除了考虑网络因素,还需考虑系统自身的可用性、一致性等因素。CAP理论就是一致性(Consistency)、可用性(Availability)和分区容错性(Partition Tolerance)三个因素的权衡。原创 2022-05-01 23:46:42 · 564 阅读 · 0 评论 -
正向与反向服务器
期望理解反向代理,在理解之前,尝试通过在正向代理和反向代理的对比中加深理解。正向代理正向代理是一个位于客户端和目标服务器之间的代理服务器(中间服务器)。为了从原始服务器取得内容,客户端向代理服务器发送一个请求,并且指定目标服务器,之后代理向目标服务器转交并且将获得的内容返回给客户端。正向代理的情况下客户端必须要进行一些特别的设置才能使用。实例如下:正向代理是为了在防火墙内的局域网提供访问Internet的途径。常见的翻墙工具就是正向代理。另外,正向代理还可以使用缓冲特性来减少网络使用率。除此之外原创 2021-12-10 00:12:53 · 273 阅读 · 1 评论 -
负载均衡(Load Balance)
现在应用架构使用负载均衡器将客户端的请求路由到不同的应用服务器,以提高系统性能。一、负载均衡体系结构多台服务器通过网络设备相连组成一个服务器集群,每台服务器都提供相同或相似的网络服务。服务器集群前端部署一台负载均衡设备,负责根据已配置均衡策略将用户请求在服务器集群中的分发,为用户提供服务,并对服务器可用性的维护。对应体系结构如下:该结构的优势:(1) 低成本:按照业务量增加服务器个数即可;已有资源不会浪费,新增资源无需选择昂贵的高端设备。(2) 可扩展性:当业务量增长时,系统可通过增加服务器来满原创 2021-12-10 00:00:08 · 1960 阅读 · 0 评论 -
IoC简介
IoC(Inversion of Control, 控制反转) 思想在现代框架设计中使用度越来越高。 IoC是面向对象编程中的一种设计原则,可以用来减低计算机代码之间的耦合度。其中最常见的实现方式叫做依赖注入(Dependency Injection,简称DI),还有一种实现方式叫“依赖查找”(Dependency Lookup)。原创 2021-02-01 21:14:19 · 1725 阅读 · 0 评论