专栏首页程序员阿凯笔记 | 大型网站的特点与设计宗旨

笔记 | 大型网站的特点与设计宗旨

阅读文本大概需要 4 分钟。

大型网站的9大特点

1. 高并发,流量大 2. 高可用 3. 大数据 4. 敏捷开发,迭代快 5. 用户量庞大 6. 可持续升级 7. 安全级别高 8. 可弹性伸缩 9. 吞吐量高


高并发,流量大 网站的请求量大:

  • 百度日均访问量50亿+;
  • QQ早就突破1亿用户同时在线;
  • 淘宝双十一惊人的并发量

高可用

假设服务器宕机了,用户就无法访问 我们就必须保证网站稳定的向用户提供7*24小时不间断的服务 哪怕有服务器节点宕机了,依然用备用集确保服务正常访问

大数据

通过大量服务器已经存储系统管理海量数据

敏捷开发,迭代快

需求快速变更,发布频繁 提高用户体验,优化各种操作,形形色色的需求快速迭代, 一般大型网站,1~2周迭代一次,中小型网站发布更为频繁

用户量庞大

用户分布广,分散的用户个体,分布在全国(全球)各地 网络情况复杂,各大运营商网络互通困难

可持续升级

所有的大型网站都是从小网站,一步一步从初创不断发展到今天 逐步演变,单体,集群,分布式,微服务,

安全级别高

互联网的开放性,使得更容易受到攻击 树大招风,你越牛X,就愈会有黑客和同行来攻击你 服务器安全漏洞,后台代码判断,API接口暴露,可执行脚本上传….

可弹性伸缩

服务器可以动态的增加,不需要的时候可以适当的减少

吞吐量高

要保证用户每次的请求响应速度是最快的

大型网站的设计宗旨

合久必分 缓存和页面静态化 集群 CDN 分布式系统 异步 NoSQL 数据库优化

合久必分

  • 分层是最常见的架构模式 MVC,便于代码的解耦和工作的合理分配
  • 应用和静态资源分离 将图片,视频,css,js等资源文件,放置到专门的服务器上。通过专门的域名去访问 存放静态资源的服务器,一般都使用Nginx提供反向代理,理论上单个Nginx可以承受5万并发
  • 业务分离 分类各个业务模块,独立出一个子系统或子服务

缓存和页面静态化

  • 缓存是数据量大最直接的解决方案。

缓存可以在第一次获取数据的时候创建,也可以在程序启动和缓存失效之后立即创建。

  • 内存缓存:主要是 ConcurrentHashMap
  • 缓存框架:常用的有Ehcache,Memcache和redis等。

  • 页面静态化,原理跟缓存非常类似。

缓存是保存数据,而页面静态化是保存带数据的页面。

使用模板技术生成,如 thymeleaf,freemaker等。

集群

  • 高可用和负载均衡的手段
  • 多台服务器部署相同的应用构成一个集群
  • 保证负载均衡的同时提升系统的可用性,互相灾备

CDN

  • 集群页面缓存服务器,每个节点直接返回缓存的页面
  • 网站发展到很庞大的时候,用户分散全国各地
  • 采用CDN,用户可以访问到最近的服务节点(联通,电信,北京,上海)

分布式系统

  • 多系统,多模块,多中间件,多服务器共同协作整合的一个整体
  • 将不同的业务放到不同的服务器中,处理一个请求可能用到多台服务器
  • 分布式架构,分布式文件系统,分布式数据库,分布式锁,分布式事务,分布式配置,分布式限流,日志收集

异步

  • 异步解耦,生产者和消费者,消息队列
  • 在高并发时进行流量削峰
  • 批量读取 与 延迟修改

NoSQL

  • NoSQL在处理海量数据的速度效率都是关系型数据库无法匹敌的。
  • 并且他的灵活性使网站的伸缩性得以很好的保证

数据库优化

  • 数据备份 - 定期为数据库做好冷热备份,不能因为节点宕机而导致数据丢失
  • 表结构优化 - 通过引擎,字段的选择
  • SQL语句优化 - 记录,分析,查找,优化
  • 索引优化 - 提升查询速度,也降低了增删改的效率
  • 分区 - 分区后,表面上还是一张表,但数据散列到多个位置了
  • 分表 - 子表,将一个大表按照一定的规则,分解成多张具有独立存储空间的实体表
  • 做好主从,读写分离,高可用……

本文分享自微信公众号 - 程序员阿凯(AKBC159),作者:阿凯不错

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-11-06

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • java中“53”个关键字(含2个保留字)

    阿凯
  • Java 学习线路图

    阿凯
  • 一条大河波浪宽 -- 数据库连接池实现

    阿凯
  • 大型分布式网站术语分析

    一、I/O优化 1、增加缓存,减少磁盘的访问次数。 2、优化磁盘的管理系统,设计最优的磁盘方式策略,以及磁盘的寻址策略,这是在底层操作系统层面考虑的。 3、设...

    琯琯
  • 大话集群和负载均衡

    原文:https://juejin.im/entry/5bc1b134f265da0a87268272

    java思维导图
  • 大型网站架构演变过程、大并发服务器架构

    大型网站架构演变过程: [Step1]web server与数据库分离 ? web动静资源分离 ? 静态请求:如html, js, css, img 动态请...

    s1mba
  • 大型网站技术架构:核心原理与案例分析-李智慧(第一次看)

    CAP认为,一个提供数据服务的存储系统无法同时满足数据一致性、数据可用性、分区耐受性(系统具有跨网络分区的伸缩性),在大型网站中,通常会选择强化分布式存储系统...

    lin_zone
  • 大型网站架构演变过程、大并发服务器架构

    客户端(浏览器)缓存 前端页面缓存(squid) 页面片段缓存ESI(Edge Side Includes) 本地数据缓存

    bear_fish
  • 大型网站技术架构核心原理与案例分析(一)

    高并发,大流量;高可用;海量数据;用户分布广泛,网络情况复杂;安全环境恶劣;需求快速变更,发布频繁;渐进式发展;

    硬核项目经理
  • PageAdmin CMS建站系统http缓存方案的使用

    在使用PageAdmin Cms做网站时候,启用http缓存可以很大程度提高网站速度和负载,下面介绍一下http缓存的作用是什么?

    用户4831957

扫码关注云+社区

领取腾讯云代金券