02 架构模式

分层思维

 

分割

指的是在分层的基础之上, 继续进行分割,比如服务层,可以分割出不同的服务.

分布式

分布式部署, 将不同模块部署在不同服务器上,通过远程调用协同工作。

分布式会导致网站依赖错综复杂,开发管理维护困难,因此分布式设计要根据具体情况量力而行。

常用的分布式:

  • 分布式应用和服务:有利用复用服务, 便于业务功能扩展。
  • 分布式静态资源: 网站的静态资源, JS,CSS,Logo,图片等资源独立部署,并采用单独独立的域名,人们常说的动静分离。静态资源分布式部署可以减轻应用服务器额负载压力;通过使用独立域名加快浏览器并发加载的速度
  • 分布式数据和存储: 目前很多 DB 都支持分布式, 比如 oracle. (对外提供的感觉是单一的)
  • 分布式计算: hadoop

集群

使用分布式虽然已经将分层和分割后的模块独立部署,但是对于用户访问的集中模块,还需要独立部署和集群化,即多台服务器部署相同应用构成一个集群,通过负载设备共同对外提供服务。

缓存

缓存是改善性能的第一手段,CDN / 反向代理 / 应用独立的缓存服务器(分布式缓存)

使用缓存有两个前提:

1. 数据访问热点不均衡,某些数据更频繁访问,这些数据应放到缓存

2. 数据在某个时间段内有效,不会很快过期,否则缓存的就是脏数据,影响结果正确性。

异步

异步也是解耦的重要方法之一(拆分也是解耦的方式), 业务之间传递消息不同步调用,而是将一个业务操作拆分成多个阶段,每个阶段之间通过共享数据的方式异步执行。异步架构是典型的生产者/消费者模式,而且还可以有效的解决并发问题.

冗余

容灾,冗余备份,冗余针对高可用。

自动化

目前大部分自动化都是在运维方面,发布过程的自动化有助于减少错误,自动化代码管理,版本控制,代码分支合并,自动化测试,自动化检测,自动化部署,自动化监控,自动化报警,自动化恢复,自动化降级,自动化分配资源

安全

密码和手机校验身份,登录,交易等操作需要对网络通信进行加密,网站服务器存储的敏感信息(身份证等)也都要加密,网站使用验证码来识别机器人的攻击,常用的攻击手段进行防范:XSS攻击,SQL注入攻击 等等.

 

posted @ 2020-04-12 16:06  神之一招  阅读(136)  评论(0编辑  收藏  举报