您的位置:加拿大28开奖官网 > 时尚 > 大型网址优化之高质量

大型网址优化之高质量

发布时间:2019-11-12 11:23编辑:时尚浏览(53)

    性能测试方法

    缓存是提高数据读取性能的,缓存数据丢失或者缓存不可用不会影响到应用程序的处理-它可以从数据库直接获取数据。但随着业务的发展,缓存会承担大部分数据访问的压力,缓存服务器有一定概率发生宕机,不能因为缓存服务器宕机,然后把压力全部传给数据库服务器,导致数据库服务器也宕机。

    衡量标准

    • 对现有的和潜在的各种攻击手段和窃密手段是否有可靠的应对策略

    缓存可用性

    用户角度的性能

    • 对于用户来说,直观的就是用户感受的网站响应的速度,也就访问后到响应到浏览器的时间。而这段时间实际上包括计算机和服务器的时间服务器的处理时间,浏览器接受响应数据后渲染到页面的时间

    网站从用户提交请求到服务端响应请求再到数据入库,这期间经过了很多环节。要做到性能优化,首先要排查到性能瓶颈的地方,然后才能对症下药,提高性能。

    安全性

    如果缓存中的数据是需要频繁修改的数据,就会出现数据写入缓存后,应用还来不及读取缓存,数据就已经失效,缓存就没有意义,只会增加系统负担。一般来说,放入缓存中的数据,至少读取两次,缓存才有意义。

    使用集群

    • 构建服务器集群,将并发请求分发到多台服务器

    把对象设计为无状态对象,使用局部对象,并发访问资源时使用锁(会对系统性能产生严重影响)

    并发数

    • 对于网站而言,并发数就是并发用户数,也就是同时提交请求的用户数目
    • 系统用户数(注册用户数)>在线用户(登录用户数)>并发用户数(同时提交请求的用户数)

    这是一个老生常谈的话题了,这里不多赘述。多线程变成需要注意的问题是线程安全问题,解决该问题的手段主要有以下几点:

    衡量标准

    • 扣除故障的时间,网站的总可用时间

    网站的业务逻辑实现代码主要部署在用于应用服务器上,合理优化业务代码,可以很好地改善网络性能。

    不同人员眼中的性能

    反向代理服务器可以通过缓存功能加速web请求,还能实现负载均衡功能,比如大名鼎鼎的nginx。

    css和js的顺序

    • 浏览器加载完所有css才会进行渲染
    • 浏览器加载js后立即执行。
    • 如果不将js放在底部,那么可能会在执行js的时候阻塞,造成页面显示缓慢。所以css可以放在最上面,js放在最下面

    加拿大28开奖预测,资源复用

    减少cookie传输

    • 太大的Cookie会影响数据传输
    • 写入cookie的数据要慎重考虑,尽量减少Cookie的数据量
    • 请求静态资源发送Cookie是无意义的,服务器并不会对Cookie进行处理,这样会消耗带宽。所以静态资源可以用独立域名访问。

    反向代理

    总结

    • 大型网站要素:性能,可用性,伸缩性,扩展性,安全性。

    4.代码优化

    负载测试

    • 对系统不断地增加并发请求以增加系统压力,直到系统的某项或多项性能指标达到安全临界值

    数据不一致性

    开发人员角度的性能

    • 响应延迟
    • 系统吞吐量
    • 并发处理能力
    • 系统稳定性

    加拿大28开奖预测 1

    吞吐量

    • 单位时间内系统处理的请求数量

    垃圾回收

    减少http请求

    • http每次请求都需要建立通信链路,进行数据传输。对于每个请求,服务端需要创建线程去处理。
    • 合并css,js,图片。将浏览器一次访问需要的css,js,资源合并成一个文件,这样就可以只用一个请求,减少创造链路和服务端服务的开销

    讲道理,对正反向代理概念一直不是很清楚,直到我看了这个图

    目录

    • 这是我的博客目录,欢迎阅读

    一、Web前端性能优化

    异步操作

    • 使用消息队列将调用异步化
    • 在不使用消息队列的时候,用户的请求数据直接写入数据库,高并发情况下,会给数据库服务器造成巨大的压力。使用消息队列后,用户请求的数据发送给消息队列后直接返回。消费者进程从消息队列读取数据,异步写入数据库

    正向代理和反向代理示意图

    大型网站特点

    • 高并发,大流量
    • 高可用,系统不间断服务
    • 海量数据,数据量大,需要存储海量数据
    • 用户分布广泛,用户分布在五湖四海
    • 安全环境恶劣,容易受到受到攻击
    • 需求变更块,发布频繁
    • 渐进式发张,从小型网站慢慢发展为大型系统

    通过分布式缓存服务器集群,将缓存服务分布到多台服务器上,一台出现故障,不影响整个集群,不会对应用产生影响,一定程度上提高缓存服务的高可用。

    启用压缩

    • 服务端对文件进行压缩,减少传输的数据的数据量,然后浏览器再进行解压

    缓存好处很多,但要合理使用。不合理使用缓存不但不能提高系统性能,还会成为系统的累赘,甚至是风险。哪些是不合理的使用缓存呢?

    价值观

    • 网站的价值在于能给用户提供什么价值,而不是他是怎么做的
    • 大型网站都是从小型网站一步步发展起来的,小型网站的时候,不要盲目去追求架构,而是首要去为业务创造价值
    • 是业务对架构提出要求,是业务促进技术的发展,是业务成就技术,所以,要对业务怀有感恩之心

    CDN部署在网络运营商的机房,这些运营商有是终端用户的网络服务提供商,因此用户请求路由的第一跳就到达了CDN服务器,当CDN存在浏览器请求的内容,就直接返回,最短路径返回响应,加快用户访问速度,减少数据中心负载压力。

    网站架构设计误区

    • 不要盲从别人的经验,坚持自我
    • 不要为了技术而技术,技术是为业务服务的,关键是实现价值,不要以为最求时尚的技术
    • 技术可以解决业务问题,但也可以通过业务的手段去解决

    多线程编程

    应用服务器性能优化

    频繁修改的数据

    分布式缓存

    3.使用集群

    性能

    缓存穿透

    前端优化

    在整个网站应用中,缓存几乎无处不在,既存在于浏览器,也存在于应用服务器和数据库服务器,即可以对数据缓存,也可以对文件缓存,还可以对页面片段进行缓存,合理使用缓存,对网站性能优化意义重大。

    演化发展

    • 一台服务器就足够,程序,数据库和文件都在一台服务器上
    • 使用三台服务器,不同特性的服务器负责不同的功能。程序,数据库和文件分离,应用程序处理大量业务,需要强大的cpu,数据库需要快速检索和缓存,需要更快的硬盘和更大的内存,文件则要更大的硬盘
    • 用户量大以后,数据库访问压力大,所以采用需要采用缓存,由于应用服务器的内存有限,所以采用大内存的缓存服务器
    • 用户量增大,一台应用服务器压力大,采用集群的方式来实现负载均衡
    • 缓存不命中的时候,数据库的压力增大,配置主从服务器,主数据库用于写数据,然后同步到从数据库,读的时候读取从数据库,实现读写分离,从而改善数据库负载压力
    • 采用CDN加速,将数据部署在网络提供商的机房,使用户在请求网站服务的时候,可以从距离自己最近的网络提供商机房获得数据。
    • 通过反向代理加速,当请求到达网站中心机房时候,先到达代理服务器,如果缓存命中的话,直接返回给用户,这样的话提高了访问速度,同时也降低了服务器的负载压力
    • 一台服务器满足不了业务需求的增长,采用分布式文件系统和分布式数据库系统
    • 进行业务拆分,业务日益复杂,将整个业务分成不同的产品线,给不同的业务团队负责

    减少http请求主要手段是合并资源,即合并css,合并图片,合并js脚本,浏览器把一次访问需要的资源合并成一个url。

    响应时间

    • 指一个操作从发出请求到响应数据需要的时间
    • 打开一个网站
    • 从数据库查找记录
    • 从磁盘读取数据

    CDN一般缓存都是css,js图片,文件,静态页面等资源,但是这些资源访问频度很高,将其缓存在CDN中可极大改善网页的打开速度。

    本文由加拿大28开奖官网发布于时尚,转载请注明出处:大型网址优化之高质量

    关键词: