2.1 网站架构模式(模式的关键在于模式的可重复性,问题场景的可重复性带来解决方案的可重复性)
2.1.1 分层。 例如:将网站软件系统分为应用层、服务层、数据层
2.1.2 分割。 例如:在应用层,将不同的业务进行分割,将购物、论坛、搜索、广告分割成不同的应用,由不同的团队负责,部署在不同的服务器上
2.1.3 分布式。
优势:解决网站高并发问题
带来问题: 1.分布式必须通过网络实现,会对性能造成比较严重的影响
2.服务器越多,宕机的几率就会越大,网站可用性降低
3.分部式环境中保持数据一致性困难
4.分布式环境网站依赖错综复杂,开发维护难度加大
种类: 分布式应用和服务、分布式静态资源、分布式数据和存储、分布式计算、
分布式配置(网站线上服务器配置实时更新)、分布式锁(分布式环境下实现并发和协同)、分布式文件(支持云存储)
2.1.4 集群:多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务
2.1.5 缓存。(前提1.数据访问热点不均衡,某些数据被频繁访问,应该放到缓存中 前提2.数据在某个时间段内有效 例如:单点登入、倒计时)
种类: 1.CDN:内容分发网络,缓存大量热点内容,部署在距离终端用户最近的网络提供商,用户网络请求总是先到达他的网络提供商那里
2.反向代理:部署在网站前端,当用户请求到达网站的数据中心时,最先访问到的就是反向代理服务器,这里缓存网站的静态资源,
无须将请求继续转发给应用服务器就能返回给用户。
3.本地缓存
4.分布式缓存
2.1.6 异步:典型的生产者消费者模式。降低系统软件之间的耦合性
使用异步消息队列优势:
1.提高系统可用性,不需要等待消费者服务器处理就可以返回,响应延迟减少
2.加快网站响应速度
3.消除并发访问高峰
2.1.7 冗余:网站7*24小时连续运行,要想服务器宕机时不丢失数据么就需要对服务器数据冗余备份,将服务和数据访问转移到其他机器上。
方法:数据库定期备份,存档保存,实现冷备份;保证在线业务高可用,对数据库进行主从分离,实时同步实现热备份;
2.1.8 自动化:主要在运维方面
种类:
1.自动化版本发布
2.自动化代码管理
3.自动化测试:代码开发完成,系统自动将代码部署到测试环境,启动自动化测试用例测试,并发送测试报告。
4.自动化安全检测:安全工具对代码进行静态安全扫描及部署到安全测试环境进行安全攻击测试。
5.自动化部署:将工程代码自动部署到线上生产环境
6.自动化监控:心跳检测、性能指标和应用程序的关键数据指标
7.自动化告警:性能数据超过预设阀值
8.自动化性能数据上报:自动与设备代理通信获取设备实时性能数据,并显示在大盘监控上
9.自动化失效转移:将失效的服务器从集群中隔离出去,不在处理系统中的应用请求。
10.自动化失效恢复:服务器故障消除后,自动加入集群,同步数据。
11.自动化降级:在网站遇到高峰,超出网站最大处理能力时,为了保证网站安全可用,拒绝部分请求及关闭部分不重要的服务将系统负载降至一个安全水平。
12.自动化分配资源:将空闲资源分配给重要的服务,扩大部署规模
2.1.9 安全:
1.密码、手机验证码、验证码进行身份认证和机器人程序攻击
2.攻击网站的XSS攻击、SQL注入、进行编码转换;
3.对垃圾信息,敏感信息进行过滤;对交易转账等信息进行风险控制