为什么80%的码农都做不了架构师?>>>
1.分层:应用层(视图层、业务逻辑层)、服务层(数据接口层、逻辑处理层)、数据层。使逻辑结构清晰,解耦和,便于开发维护。
2.分割:具体分割业务。比如在应用层,将不同的业务进行分割,例如将购物、论坛、搜索、广告分割成不同的应用,由独立团队负责。
3.分布式:远程协调工作。常见的分布式方案:分布式应用和服务(分布式部署)、分布式静态资源(静态资源独立部署,动静分离)、分布式数据和存储(NoSQL)、分布式计算(搜索引擎的构建、数据仓库的数据分析统计)、分布式配置(服务器配置实时更新)、分布式锁(并发和协同)、分布式文件(云存储)。
4.集群:提供相同服务的机器。实现负载均衡以及失效转移机制。
5.缓存:CDN、反向代理、本地缓存、分布式缓存。使用缓存可以加快数据访问速度,也可以减轻后端应用和数据存储的负载压力。
使用缓存的前提条件:1.数据访问热点不均衡,存放热数据。2.数据在某个时间段有效,不会很快过期,否则会因失效出现脏读。
6.异步:降低软件耦合性。
a.提高系统可用性。消费者服务器发生故障,数据会在消息队列服务器中存储堆积。生产者服务器可以继续处理业务请求,系统整体表现无故障。消费者服务器恢复正常后,继续处理消息队列中的数据。
b.加快网站响应速度。在业务处理前端的生产者服务器在处理完业务请求后,将数据写入消息队列,不需要等待消费者服务器处理就可以返回,响应延迟减少。
c.消除并发访问高峰。
7.冗余:数据冗余备份。定期备份,存档保存,实现冷备份;为保证在线业务高可用,对数据库进行主从分离,实时同步热备份。
8.自动化:发布过程自动化,减少人为干预;自动化代码管理,代码版本控制、代码分支创建合并等过程自动化;自动化测试;自动化安全检测;自动化部署;自动化监控线上生产环境;自动化报警,遇到异常或超出预设阈值;自动化失效转移;自动化失效恢复;自动化降级;自动化分配资源。
9.安全:密码和验证码进行身份验证;登陆、交易等操作需要对网络通信进行加密,网站服务器上存储的敏感数据如用户信息也进行加密处理;使用验证码识别机器人程序;对于常见的XSS攻击、SQL注入进行编码转换等相应处理;过滤垃圾,敏感信息;对交易转账等重要操作根据交易模式和交易信息进行风险控制。