3.大型网站的核心要素

架构:有关软件整体结构和组建的抽象描述,用于指导大型软件系统各个方面的设计
要素:性能、可用性、伸缩性、安全性、扩展性

性能:
优化:
浏览器端:使用浏览器缓存、页面压缩、合理布局页面、减少cooike传输
使用CDN:部署一些静态资源到运行商附近
应用服务器端:
使用本地缓存和分布式缓存
使用并发编程、改善内存管理
使用消息队列,用户请求放到消息队列,当前请求直接返回给用户
数据库端:使用索引、缓存、SQL优化
使用NoSQL:例如redis、memcache,redis其实存储时,可以优化内部的存储结构
衡量指标,可以分析系统瓶颈、预测网站容量、对异常指标报警
响应时间
TPS:Transactions Per Second,每秒处理事务数量
系统性能计数器

可用性:衡量指标是,当一台或多台宕机,整体依然可用
可用性计算方式:(总时间-故障时间)/总时间
大型网站可以做到可用性 99.99%
构建高可用的手段:
冗余:是主要手段
数据存储在多台服务器进行备份、复制,当机器宕机,可以将那台机器的硬盘数据复制到新的机器
应用部署在多台服务器上,使用负载均衡设备
发布验证、自动化测试、灰度发布

伸缩性:不断地向集群中加入新的机器来缓解用户并发压力和不断增长的业务需求,是否还能提供无差别的服务,系统对机器数量有没有上限,上限是多少
应用服务器集群:除了本地缓存之外,所有服务器是对等的,使用负载均衡服务器就可以加入新机器
缓存服务器集群:加入新节点会导致 路由 失效,导致集群大部分缓存失效,虽然缓存可以重新加载,但是,如果系统严重依赖缓存,那么系统崩溃
关系型数据库:虽然支持主从复制,但是大规模集群难以做到 CAP
NoSQL产品:容易实现,如redis

扩展性:网站增加新的业务时,是否可以对现有产品无影响,透明,耦合性低,网站拓展主要有两个手段:事件驱动架构、分布式服务
事件驱动架构
通常使用消息队列
分布式服务
分布式通常把 可复用 的服务独立出来
开发新业务,只需要独立开发,调用 可复用 业务即可
如果要更新 可复用 业务,可以提供多个版本对应用实现透明升级

安全性:
防止攻击

发布了20 篇原创文章 · 获赞 1 · 访问量 1458

猜你喜欢

转载自blog.csdn.net/weixin_44587666/article/details/89675366
今日推荐