《大型网站技术架构》读书笔记[3] - 架构核心五要素

news/2024/5/20 8:36:19/文章来源:https://blog.csdn.net/weixin_30535843/article/details/98950726

架构设计中要考虑的核心五要素;
性能、可用性、扩展性、伸缩性、安全性

性能

性能的测试指标

  • 响应时间
    应用执行一个操作需要的时间,包括从发出请求开始到收到最后响应数据所需要的时间。响应时间是系统最重要的性能指标,直观地反映了系统的“快慢”。下表列出了一些常用的系统操作需要的响应时间。
    image

  • 并发数
    系统能够同时处理请求的数目

  • 吞吐量
    单位时间内系统处理的请求数量;
    如:TPS、QPS(每秒查询数)

随着并发数的增大,吞吐量随着增大;
超过阈值后,并发数继续增大,吞吐量下降,直到吞吐量降为0,网站宕机;

理解上述3个指标:类比高速公路行车
吞吐量就是每天通过的车辆数
并发数是正在行驶的车辆
响应时间是车速

性能测试方法

  • 性能测试
    以预期设定的性能值为目标,测试是否能满足预期
  • 负载测试
    不断加压到安全临界值
  • 压力测试
    超过安全负载直到崩溃下的最大负载

下图中的横坐标表示消耗的系统资源,纵坐标表示系统处理能力(吞吐量)。在开始阶段,随着并发请求数目的增加,系统使用较少的资源就达到较好的处理能力(a~b段),这一段是网站的日常运行区间,网站的绝大部分访问负载压力都集中在这一段区间,被称作性能测试,测试目标是评估系统性能是否符合需求及设计目标;随着压力的持续增加,系统处理能力增加变缓,直到达到一个最大值(c点),这是系统的最大负载点,这一段被称作负载测试。测试目标是评估当系统因为突发事件超出日常访问压力的情况下,保证系统正常运行情况下能够承受的最大访问负载压力;超过这个点后,再增加压力,系统的处理能力反而下降,而资源消耗却更多,直到资源消耗达到极限(d点),这个点可以看作是系统的崩溃点,超过这个点继续加大并发请求数目,系统不能再处理任何请求,这一段被称作压力测试,测试目标是评估可能导致系统崩溃的最大访问负载压力。

image

性能测试反应的是系统在实际生产环境中使用时,随着用户并发访问数量的增加,系统的处理能力。与性能曲线相对应的是用户访问的等待时间(系统响应时间),如图所示。

image

在日常运行区间,可以获得最好的用户响应时间,随着并发用户数的增加,响应延迟越来越大,直到系统崩溃,用户失去响应。

性能测试报告

测试结果报告应能够反映上述性能测试曲线的规律,阅读者可以得到系统性能是否满足设计目标和业务要求、系统最大负载能力、系统最大压力承受能力等重要信息,下表是一个简单示例。

image

 

 

可用性

高可用的应用服务器

构建高可用的应用服务器关键是session的处理,如果能使得每天机器上处理的请求都无状态,即可实现应用服务器的线性伸缩;服务器宕机后也可随时将请求放到其它机器上再次处理;
而对于需要处理状态信息的应用,解决方案是让每台机器使用共享的Session服务器,本地上还是无状态特征;

高可用的服务

设计要点

  • 分级管理
    区别核心应用和一般应用;在流量增加到超过网站的处理能力时,为了保证核心应用的可用性,可以将一般应用的服务停止,将资源让位给核心服务;
    比如博客中的博文显示和博客的评论功能;
  • 超时设置
  • 异步调用
  • 服务降级
    eg:twitter:随机拒绝部分请求
  • 幂等性设计
    保证多次调用结果一致

高可用的数据

CAP原理
一个提高服务的存储系统无法同时满足以下三个条件
一致性(Consistency)
数据可用性(Avalibility)
分区耐受性(Patition Tolerance,系统具有跨网络分区的伸缩性)

WEB架构设计中,通常为了保证高可用性,会牺牲一致性;

数据一致性分为:强一致、用户一致、最终一致;
大型WEB站点一般只保证数据的最终一致性;

扩展性

在网站新增业务产品时,实现对现有产品无影响,透明上线新产品。
主要手段

  • 事件驱动
    利用消息队列实现
  • 分布式服务
    将业务和可复用服务分离开

伸缩性

通过不断向集群中加入服务器的手段来缓解不断上升的用户并发访问压力。
可能加入的服务器有以下4类,其伸缩性能各不相同;

应用服务器

通过设计实现集群内服务器对等,使用合适的负载均衡可保证良好的伸缩性;

缓存服务器

缓存服务器伸缩性良好,但新加入服务器后可能导致缓存路由失效;
通过改进缓存路由算法,比如Memcached的一致性Hash,可实现加入新的缓存服务器后对原有缓存的影响尽量减少;

数据库服务器

很难做到大规模集群的可伸缩性
实现方式有:读写分离、数据表分库
(单表拆分:Cobar)
也可考虑伸缩性方案在数据库之外实现(通过路由分区)

NoSql产品

Nosql数据库就是为海量数据而生,可轻松实现集群规模的线性伸缩;
(Hbase使用Zookeeper选举master)

安全性

99.99%的设计标准:无单点、在线更新、自动切换

附:思维导图

卓越亚马逊地址: 《大型网站技术架构》
点击查看原图

架构核心五要素

Posted by: 大CC | 13APR,2014
博客:blog.me115.com [订阅]
微博:新浪微博

转载于:https://www.cnblogs.com/me115/p/3662421.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.luyixian.cn/news_show_712891.aspx

如若内容造成侵权/违法违规/事实不符,请联系dt猫网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

java抓取网页数据_Golang丨Java丨Python爬虫实战—Boss直聘网站数据抓取

我们分别通过Golang、Python、Java三门语言,分别实现对Boss直聘网站的招聘数据进行爬取。首先打开Boss直聘网站:然后我们在职位类型中输入Go或者Golang关键字:然后我们可以看到一个列表,和Go语言相关的各种招聘职位,还…

我的网站被黑了,关键词被劫持,总结一下是怎么解决的。

1、发现被黑,网站被黑的症状 两年前自己用wordpress搭了一个网站,平时没事写写文章玩玩。但是前些日子,突然发现网站的流量突然变小,site了一下百度收录,发现出了大问题,网站被黑了。大多数百度抓取收录的页…

一个大图切成几个小图加载速度更快_谷歌SEO页面速度的重要性

什么是页面速度?页面速度是指网页加载所需的时间。一个页面的加载速度是由几个不同的因素决定的,包括网站的服务器、页面文件大小和图片压缩。也就是说,"页面速度 "并不像 "网页速度 "那么重要。"页面速度 "并…

大学计算机思维导图_3款免费在线思维导图网站,你一定要收藏一个!

1:迅捷画图https://www.liuchengtu.com/迅捷画图是一个专业的思维导图、流程图制作网站。支持在线创作流程图、思维导图、组织结构、ER图、网络拓扑图、UML图等等。接下来说说特色:l 支持导出多种格式,如JPG、PNG、PDF文件、txt文本等格式l 提…

python中data.find_all爬取网站为空列表_利用Golang快速爬取盗版网站的整套音频

01前言最近因为 Zigma 帮我写了个推广 Catcher 小程序软文的原因,答应了他帮他爬了一个盗版音频网站的整套 《李淼谈奇案》 。在制作爬虫脚本的过程中,也是遇到了一些有趣的问题,所以特此写了这篇 Blog 用于记录脚本的整一个实现与问题解决。…

java web 项目伪静态_【Java Web】使用URLRewrite实现网站伪静态

大部分搜索引擎都会优先考虑收录静态的HTML页面,而不是动态的*.jsp、*.php页面。但实际上绝大部分网站都是动态的,不可能全部是静态的HTML页面,因此互联网上大部分网站都会考虑伪静态——就是将*.jsp、*.php这种动态URL伪装成静态的HTML页面。…

网站html静态化 教程,新云CMS网站内容管理系统生成HTML静态化教程

网站静态化一直是SEO重点关注对象。静态化有好有坏,最大的好处是收录迅速,坏处是纯静态的HTML页面难以维护,特别是对于大型的网站。本文将介绍如何将新云CMS网站管理系统静态化。html本文以新云CMS 3.0为例。动画1.进入后台控制面板&#xff…

ASP.NET SignalR 与LayIM配合,轻松实现网站客服聊天室(四) 添加表情、群聊功能...

休息了两天,还是决定把这个尾巴给收了。本篇是最后一篇,也算是草草收尾吧。今天要加上表情功能和群聊。基本上就差不多了,其他功能,读者可以自行扩展或者优化。至于我写的代码方面,自己也没去重构。好的,我…

苹果cms mysql 什么版本_分享如何使用阿里云ECS快速搭建CMS网站

想建网站又不会编程的小伙伴有福啦,本期推荐一些开源的cms建站程序,不需要写后端的任何逻辑代码,轻轻松松就可以建立自己的网站了,当然,要想网站有自己的个性,模版还是需要自己写的,只需要会简单…

关于大型网站技术演进的思考(一)--存储的瓶颈(1)

前不久公司请来了位互联网界的技术大牛跟我们做了一次大型网站架构的培训,两天12个小时信息量非常大,知识的广度和难度也非常大,培训完后我很难完整理出全部听到的知识,今天我换了个思路是回味这次培训,这个思路就是通…

动易html在线编辑器 漏洞,动易系统解决IE8网站后台编辑器无效问题

微软的IE8正式版已于2009年3月20日正式发布了,也有不少的动易用户升级了自己的浏览器,但在升级后都发现动易的后台编辑器无法使用了,症状就是点击任何功能图标都没有弹出设置窗口,经过搜索了一下,终于找到了解决IE8下无…

seo 伪原创_seo文章优化(怎么样做好伪原创文章)

在seo网站优化行业中有很大一部分的站点都是以做内容为主,做内容的重点就是写文章,因为很多在搜索引擎中的排名都是靠文章的,那么我们就要着重做好文章,目前还是有很大一部分在做文章的步骤中的问题很大,就是因为没有掌…

apache 网站转nginx_堡塔网站加速宝塔面板网站加速安装设置使用教程

堡塔网站加速是宝塔面板为用户开发的一款网站加速插件,基于页面缓存的网站加速插件,支持常见的众多建站程序加速。其原理是在http协议层缓存动态页面,对实时信息及已登录的会话跳出缓存,此技术主要针对匿名访问的用户进行加速响应…

java音乐网站源码_Vue + SpringBoot + MyBatis 音乐网站

一、前言这里对音乐网站这个项目的开发流程做一下描述,我觉得了解了具体实现的来龙去脉,上手自己做就容易得多了,要知道数据是怎么从数据库一步步跑到前端页面的,当知道了整个的流程再去处理中间的细节,具体实现的细节…

网站导航颜色停留_提高网站流量的方法有哪些?

在做网站SEO推广的时候,网站的访问量是十分重要的一个因素,不仅仅是对网站,对搜索引擎来说也是评价网站级别重要的一个参考因素。那么,提升网站流量的方法有哪些?接下来蜘蛛池博客小编就跟大家分享下提升网站流量的方法…

网站能ping通 但是打不开_SEO网站建设的三要素:域名、空间、网站程序

域名的选择:好域名和短域名对权重影响:好的域名更容易让用户记住你,提高用户回头率。域名的长短影响对SEO没有任何影响,只是短的域名更容易被人记住。另外市面上出现了很多的中文域名,不建议使用中文域名,因…

在线计算机 授课,在线计算机教育网站计蒜客改版 推出算法竞赛课程

【赛迪网讯】4月16日消息,近日,新型在线计算教育平台计蒜客进行了重大改版,网站从底层架构到课程内容都进行了大幅调整。计蒜客新版除了服务速度和稳定性大幅提升外,还对用户的学习体验进行了优化;同时,计蒜…

浅谈web网站架构演变过程

前言 我们以javaweb为例,来搭建一个简单的电商系统,看看这个系统可以如何一步步演变。该系统具备的功能:用户模块:用户注册和管理商品模块:商品展示和管理交易模块:创建交易和管理阶段一、单机构建网站 网站…

在你的网站中使用 AdSense广告

下面介绍了如何使用Google的AdSense来为你的网站设置广告。基本内容包括: 创建一个AdSense账号,你必须18岁以上,有一个Google账号以及地址 你的网站必须已经被激活,并且你的网站内容必须符合AdSense政策 创建响应式布局广告单元&a…

java开发社交网站_仿知乎问答社交平台网站

zhihu仿知乎问答社交平台简介这是一个仿知乎的问答社交平台网站,界面与基本功能均仿照知乎。目前实现包括注册,提问,回答,点赞,关注,私信等功能。技术选型后端核心框架:Spring Framework 4.2.5视…