目录
1 分层
2 分割
3 分布式
4 集群
5 缓存
6 异步
7 冗余
8 自动化
安全
常用的网站架构模式有哪些?
1 分层
如,网络的7层通信协议,计算机的硬件,操作系统,软件也可以看作是一种分层架构
优点:
a 便于分工合作开发和维护
b 各层独立,只要维持调用接口不变,各层可以根据具体问题独立演化和发展。
2 分割
分层是横向切分,那么分割是纵向切分。
将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。
优点:
a 有助于软件的维护和开发
b 便于不同模块的分布式部署,提高网站的并发处理能力和功能扩展能力
例如将购物,论坛,搜索,广告分割成不同的应用。
3 分布式
对于大型网站,分层和分割的一个主要目的是为了切分后的模块便于分布式部署
优点:
a 可以使用更多的计算机完成同样的功能,计算机越多,cpu,内存,存储资源也就越多,能够处理的并发访问和数据量也就越大。
缺点:
a 意味着服务调用通过网络,性能会有影响
b 服务器越多,服务宕机的概率也就越大
c 分布式保持数据一致性比较困难,分布式事务也难以保证
d 网站以来错综复杂,开发管理维护困难
常用的分布式方案:
a 分布式应用和服务
b 分布式静态资源
c 分布式数据和存储
d 分布式计算
e 分布式配置
f 分布式锁
g 分布式文件系统
4 集群
多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务,提高系统的可用性。
5 缓存
a CDN
即内容分发网络,部署在距离终端用户最近的网络服务商,用户的请求总是先到达他的网络服务商那里。
b 反向代理
反响代理属于网站前端架构的一部分,部署在网站的前端,当用户请求到达网站的数据中心时,最新访问到的就是反向代理服务器,这里缓存网站的静态资源,无需将请求继续转发给应用服务器就能放回给用户。
c 本地缓存
d 分布式缓存
什么时候考虑用缓存:
一是访问热点数据不均衡,某些数据会被更频繁的访问,这些数据应该放在缓存中
二是数据在某个时间段内有效,不会很快过期,否则缓存的数据会因已经失效而产生脏读。
6 异步
单一服务:
多线程共享内存队列的方式实现异步
分布式系统中:
多个服务器集群通过分布式的消息队列实现异步
使用异步的优点:
a 提高系统可用性
b 加快网站响应速度
c 消除并发访问高峰
7 冗余
a 提供两台以上实例组成集群
b 数据库除了定期备份,存档保存,实现冷备份意外,通过主从分离,实时同步实现热备份
c 大型网站会对整个数据中心进行备份,全球范围内部署灾备数据中心
8 自动化
a 发布过程自动化
b 自动化代码管理
c 自动化测试
d 自动化安全检测
e 自动化部署
f 自动化监控
g 自动化报警
h 自动化失效转移
i 自动化失效恢复
j 自动化降级
k 自动化分配资源
安全
密码,手机验证码,数据加密,垃圾信息敏感信息过滤,对交易转账进行风险控制。