学习《软件工程》12.4、12.7、12.8节
软件体系结构风格
层次结构
层次结构系统被分为若干层次,每一层之间通过接口互相调用和返回。下层构建向上层构建提供服务。
客户机/服务器体系结构
两层C/S体系结构(胖客户端结构)
- 服务器只负责数据的管理
- 用户机实现应用逻辑和用户的交互
缺点:客户端负担过重,可扩展性不好
分类:
三层C/S结构
把应用系统分为:表示层、功能层、数据层,逻辑上相互独立。
优点:
1.降低了客户端的负荷 2.减轻了系统维护和升级的成本和工作量 3.系统的灵活性和功能性变得很强
缺点:如果各层之间的通信效率很低,即使分配的硬件很强,性能也不好
B/S结构(浏览器/服务器结构)
是三层C/S结构的一种实现方式。客户端就是浏览器,表示层就是web服务器(处理客户端所需要的展示逻辑),应用层就是应用服务器(负责所有的业务逻辑),数据层就是数据服务器(负责对数据的操作)
集群结构
功能层或数据层分布在多台服务器上的结构
MVC结构
为了解决“用户界面的修改——>业务逻辑修改”的问题而提出,此问题的影响因素
优化前–>
优化后–>
Web系统架构设计
分为前端和后端
合理的资源配置
例,MVC设计的HTTP后端服务器
resful的后端服务
前后端耦合会给开发带来困难,使用resful后端服务器,使前后端开发更容易配合
以前后端服务器返回给前端的是相应的 页,但是在resful后端只会返回给前端特定格式的相应。
通过nignx之类的web服务器托管我们的前端和后端,就可以解决前后端不同端口的问题。
异步任务机制
异步服务一般是以异步任务的形式实现的,可以提供更复杂的服务,并且可以弹性伸缩
软件:celery
缓存机制
对于经常访问但不需要经常变化的数据,放在上一层中,使服务响应时间提高
如,内存性数据库Redis
数据库选择策略
什么是数据库
数据库简单的性质分类
数据怎么存储:
持久化存储 or 内存数据库(将数据持久化在磁盘上 or 将数据库存储在内存中)
单机 or 分布式(数据库分布在一台机器上 or 数据库分布在多台服务器)
数据怎么增删改查:
关系查找 or key-value查找(关系查找对应的是多个相同的属性,key-value是文档形式)
操作是否安全:
事务(保证了操作序列的完整执行)
实时一致性 or 最终一致性 (任意时间都是一致的 or 最终结果一致)
可用性:
故障后恢复方法
数据库介绍
关系型:
非关系型:
内存:
数据库选择
不能直接拆分,而要进行业务级别的拆分
声明:本站部分文章及图片源自用户投稿,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!