网站架构模式
分层
横向维度,每个部分负责单一的职责。上层对下层依赖和调用。
应用层,服务层和数据层
分割
网站越大,不同功能和服务分割出来形成高内聚低耦合模块单元。
分布式
分布式部署,即将不同模块部署在不同的服务器上,通过远程调用协同工作。
数据在分布式环境中保持数据一致性非常难,分布式难以保证。
分布式应用和服务、分布是静态资源、分布式数据和存储、分布式计算、并发和协同的分布式锁。
Zookeeper 的典型的应用场景(配置文件的管理、集群管理、同步锁、Leader 选举、队列管理等)
集群
多台服务器部署相同应用,通过负载均衡向外提供服务。
缓存
缓存就是放在离计算距离最近的位置以加快处理速度。
CDN:内容分发网络 、反向代理、本地缓存、分布式缓存。
缓存种类:1. LocalCache(独立式): 例如Ehcache、BigMemory Go 2. Standalone(单机) 3. Distributed(分布式):例如Redis-Cluster, memcache集群等等
异步
一个重要目标和驱动力是降低软件耦合性。
一个业务操作分成多个阶段,每个阶段之间通过共享数据的方式异步执行进行协作。
单一服务器内部通过多线程共享内存队列方式实现异步:处理业务操作前面的线程将输出写入到队列,后面的线程从队列中读取数据进行处理。
分布式中,多个服务器集群通过分布式消息队列实现异步,分布式消息队列可以看做内存队列的分布式部署。
异步架构(生产者消费者模式),异步消息队列的特性:可用性,加快网站响应和消除并发访问高峰。
冗余
数据库定期备份,存档保存,实现冷备份
数据库进行主从分离,实时同步实现热备份。
安全
web安全 《白帽子讲安全》 吴瀚清
架构模式在新浪微博的应用
异步推拉模式、多级缓存策略
小结
好的设计绝对不是模仿,不是生搬硬套某个模式。
时间: 2024-09-30 07:48:07