分层(7层通信协议,应用层-服务层-数据层)(横向切分)
分割(根据功能和服务分割,如在应用层将不同业务进行分割)(纵向切分)
分布式(不同模板(分层和分割出的)部署到不同的服务器上)
常见的分布式方案:
集群(多台服务器部署相同应用构成一个集群,通过负载均衡设备共同对外提供服务)
缓存(将数据存放在距离计算最近的位置以加快处理速度)(前提条件:1、数据访问热点不均衡,2、数据在某个时间段内有效,不会很快过期)
常见的缓存:
异步(业务之间的消息传递不是同步调用,而是将一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行进行协作)
单服务器中:多线程共享内存队列实现异步
分布式系统中:多个服务器集群通过分布式信息队列实现异步
优点:提高系统可用性、加快网站响应速度、消除并发访问高峰
缺点:影响用户体验、影响业务流程
冗余(数据冗余备份,服务至少两台服务器构成一个集群,实现服务高可用)
冷备份:数据库定期备份,存档保存
热备份:在线业务高可用,数据库主从分离
自动化(发布过程自动化、自动化代码管理、自动化测试、自动化安全检测、自动化部署、自动化监控、自动化报警、自动化失效转移、自动化失效恢复、自动化降级、自动化分配资源)
安全(密码和手机验证码身份认证、网络通信加密、敏感信息加密处理、验证码识别,XSS攻击、SQL注入等)
性能测试
性能测试指标:响应时间、并发量、吞吐量、性能计数器
性能测试方法:性能测试、负载测试、压力测试、稳定性测试
性能优化
Web前端性能优化:
应用服务器性能优化:
存储性能优化:
高可用的主要手段:
数据和服务的冗余备份和失效转移
通过负载均衡进行无状态服务的失效转移(无状态服务是指应用服务器不保存业务的上下文信息,仅根据每次请求提交的数据进行相应的业务逻辑处理,多个服务器之间完全对等,请求提交到任意服务器,处理结果都完全一样)
应用服务器集群的Session管理(Web应用中将多次请求修改使用的上下文对象称为会话Session)
单机:Session由部署在服务器上的Web容器(如Jboss)管理
负载均衡的集群环境(可能将请求分发到任意一个应用服务器):Session复制(几台服务器之间同步Session对象)、Session绑定(利用负载均衡的源地址Hash算法,将源于同一个IP的请求分发到同一台服务器)、利用Cookie记录Session、Session服务器(利用独立部署的Session服务器统一管理Session)
高可用的服务:
高可用的数据:
高可用网站的软件质量保证:
网站运行监控:
通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力和不断增长的数据存储需求(不需要改变网站的软硬件设计)
网站架构的伸缩性设计:
应用服务器集群的伸缩性设计:
分布式缓存集群
数据库存储服务器集群
能快速响应市场需求变化,增加新业务可以实现对现有产品透明无影响
利用分布式服务(如:利用分布式消息队列降低系统耦合性)
XSS攻击、注入攻击、CSRF攻击、其他攻击和漏洞
Web应用防火墙、网站安全漏洞扫描
加密技术:单向散列加密、对称加密、非对称加密、密钥安全管理
信息过滤与反垃圾:文本匹配、分类算法、黑名单