您的位置:首页 > 运维架构 > 网站架构

高性能服务器架构小结

2017-09-16 08:16 253 查看

本文内容摘抄自李智慧的《大型网站技术架构:核心原理与案例分析》一书。内容整理如有问题,请联系我或在下方评论

概念:nginx服务器 允许的最大并发数为 65535 (理论峰值)

网站优化的第一定律:优先使用缓存

影响网站的性能的因素:1.硬件 2.软件3.CPU 4.内存 5.核数 6.硬盘 7.宽带 等。

系统的环境Lnmp

LNMP 不只是代表Windows、Nginx、MySQL、PHP

L运行环境 n服务器环境 m数据库 p编程语言

注意:pear可以作为php的依赖库 也是一门编程语言

服务器伸缩性架构分割

①.横向分割:按照业务逻辑进行分割。将系统在横向维度上切分成几个部分,每个部分负责一部分相对比较单一的职责,然后通过上层对下层的依赖和调用组成一个完整的系统。

②.纵向分割:纵向方向上对软件进行切分,将不同的功能和服务分割开来,包装成高内聚低耦合的模块单元。ps:可以简单的理解为各个服务(如apache、PHP、MySQL)自己干自己的活。

③分布式

分层和分割的主要目的时为了切分后的模块便于分布式部署,将不同的模块部署在不同的服务器上,通过远程调用协同工作。

可以分布式应用和服务,分布式静态资源(动静分离,减轻应用服务器负载压力,独立域名加快浏览器并发加载速度等)

④集群

多台服务器部署相同的应用构成一个集群,通过负载均衡设备共同对外提供服务。

4.1.负载均衡:

4.1.1负载均衡的形式:

1.http重定向的负载均衡(301:永久重定向、302:临时重定向,此处使用302)

优点:搭建相对简单

缺点:损耗性能(需要两次访问),响应时间长。负载服务器承受有限,容易成为网站 发展的瓶颈。不利于SEO优化。危险,用户直接访问应用服务器,安全性差。

延伸:SEO优化:搜索引擎优化。SEO是指通过对网站进行站内优化和修复(网站Web结构调整、网站内容建设、网站代码优化和编码等)和站外优化,从而提高网站的网站关键词排名以及公司产品的曝光度。ps:如:百度蜘蛛的搜索引擎。

2.DNS重解析服务器

优点:搭建简单。负载服务器不再是瓶颈。支持基于地理位置解析,加快访问速度

缺点:多级解析,生效时间内会导致用户访问失败。控制权在运营商那里,无法做更多的改善和管理

3. 反向代理负载均衡:

优点:架构简单,安全,效率高

缺点:反向代理所有的请求中转站,容易成为性能的瓶颈

4.IP代理负载均衡

优点:性能高

缺点:数据量大比较吃力,带宽会成为限制

5.数据链路层负载均衡:在通信协议的数据链路层修改mac地址,从而实现负载均衡。Linux上最好的开源产品:LVS(Linux Virtual Server)

优点:三角传输,返回的数据无需经过数据链路层负载服务器,负载服务器的网卡带宽不再是瓶颈。目前大型网站大多采用这种技术。

缺点:多层路由,带宽会限制网速。

PS:6、fair:nginx第三方负载均衡模块(前五种自带的)

4.1.2:负载服务器的算法

1.轮询

优点:轮流的,默认的,一碗水端平

缺点:由于是轮流制,应用服务器的配置不同,会出现大马拉小车,小马拉大车的情况

改善:加权轮询。(权重)

2.随机:http请求随机分配,与轮询其实差不多。优缺点与轮询差不多

3.最少链接:谁的连接数最少给谁

4.源地址散列:把用户的IP转化为哈希值存在某台服务器,该用户下次访问还会访问这台服务器

session共享:可以使用公共的硬盘来存session,或者存在所有服务器公用的缓存服务器中(如memcache、Redis等)。

⑤缓存

包括本地缓存、反向代理、CDN服务等。

⑥异步

典型的生产者消费者模式,两者不存在直接调用,只要保持数据结构不变,彼此功能实现可以随意变化而互不影响,对网站扩展新功能非常便利。异步方式处理业务可能会影响用户体验、对业务流程造成影响,需要网站产品设计方面的支持。

⑦冗余

冷热备份,灾备数据中心等等

⑧自动化

发布自动化、测试自动化、自动化失效转移等等技术

⑨安全

通过密码手机验证,验证码识别,防止XSS攻击、SQL攻击,编码转换,进行风险控制

单一变量原则

ab测试:切换到ab.exe(apache/bin)目录下  

命令:ab -n 请求数 -c 并发数 请求的地址(要到具体的文件)

优化:

     1.浏览器方面考虑

1.1 减少http的请求

   1.1.1  js      

   1.1.2  css     

   1.1.3  images  雪碧图

        1.2 使用浏览器缓存

1.3 减少cookie传输(cookie的value老版本能存20个 新版本能存50个)

1.4 启用压缩

1.5 css放最上面 js放最下面

     2.CDN(内容分发网络) 本质为一个缓存 部署在网络运营商的机房里

2.1 好处:

    2.1.1 节省计算时间

    2.1.2 节省读取时间

    2.1.13 节省传输时间 <-- 节省的时间最长

2.2 坏处:

    2.2.1 买买买

    2.2.2 数据不一致引起脏读

     3.缓存

3.1 热点

3.2 缓存的意义:高读写比 (读和写的比例很大,至少2:1 缓存才有意义。八二原则,百分之八十的访问量落在百分之20的页面上)

3.3 坏处:脏读、缓存穿透、缓存预热
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  服务器 高性能 架构