赞
踩
DNS
DNS(Domain Names System),域名系统,是互联网一项服务,是进行域名和与之相对应的 IP 地址进行转换的服务器。
简单来讲,DNS
相当于一个翻译官,负责将域名翻译成ip
地址
例如将www.baidu.com这个域名解析成了115.239.211.112,我们访问www.baidu.com时其实访问的是115.239.211.112这台服务器。
负载均衡
①什么是负载均衡?为什么要使用负载均衡?
什么是负载均衡:
负载均衡(专业描述):建立在现有网络结构之上,它提供了一种廉价有效透明的方法扩展网络设备和服务器的带宽、增加吞吐量、加强网络数据处理能力、提高网络的灵活性和可用性。
负载均衡(通俗描述):负载均衡就是实现集群调度者最优调度解决调用服务器处理请求的方法。
为什么要使用负载均衡:
现在网站的架构已经从C/S模式转变为B/S模式,对于这两种模式的区别,大家没必要纠结,有兴趣的同学可以给我留言,我会在后面为大家讲解,现在只需要知道C/S模式是有一个专门的客户端,而B/S模式是将浏览器作为客户端。当用户在浏览器上输入一个网址按下回车键后,就会产生一个请求,在远方的服务器会处理这个请求,根据这个请求来生成用户想要的页面,然后将这个页面响应给浏览器,这样用户就能看到他想要看到的东西。我们知道,一台服务器处理数据(请求也是一种数据)的能力是有限的,当有大量的用户同时在浏览器上输入网址并按下回车键后,就会有大量的请求产生,远方的服务器就不得不处理这些请求,由于请求数量过多,服务器处理的效率就会变慢,响应时间就会变长,这样用户就不能在可以忍受的时间内看到自己想看到的东西,严重影响体验效果。更严重一点,如果请求数量超过了这台服务器所能处理的最大请求,服务器就会崩溃,直接导致网站瘫痪。
那么,有什么方法能够解决这个问题呢?答案就是建立一个集群(就是一群服务器),通过集群的力量来提高服务端的数据处理能力,因为一台服务器的处理能力肯定比不上多台服务器的处理能力。
这样我们在来描述一下用户请求页面的过程:首先用户在浏览器输入网址并按下回车键,然后会产生一个请求,远方的服务器会处理这个请求…等等,现在远方有很多服务器,到底哪个服务器来处理这个请求呢,总不能所有的服务器都处理这个请求吧。哪个服务器处理这个请求?大家明白了吧,这就是负载均衡所要解决的问题。回到上边请求页面的过程,这个请求此时会被一台专门的服务器来处理,这台服务器其实就是个集群的老大,他负责把这个请求派给下面哪个小弟(服务器)来处理,处理完之后返回页面用户。当有多个请求同时发生时,集群的老大可以将请求派给不同的小弟,这样处理的效率就会大幅提升,充分发挥集群的力量,至于哪个请求到底派给哪个小弟,这就是调度策略的问题了。
好了,到现在大家应该都明白什么是负载均衡了,为了让大家印象更加深刻,大家可以看一下下面的图,便于理解记忆。
②实现负载均衡的三种方式
1)HTTP重定向实现负载均衡
请求过程:
当用户向服务器发起请求时,请求首先被集群调度者(集群老大)截获;调度者根据某种分配策略,选择一台服务器(小弟),并将选中的服务器的IP地址封装在HTTP响应消息头部的Location字段中,并将响应消息的状态码设为302,最后将这个响应消息返回给浏览器。
当浏览器收到响应消息后,解析Location字段,并向该URL发起请求,然后指定的服务器处理该用户的请求,最后将结果返回给用户。
在使用HTTP重定向来实现服务器集群负载均衡的过程中,需要一台服务器作为请求调度者。用户的一项操作需要发起两次HTTP请求,一次向调度服务器发送请求,获取后端服务器的IP,第二次向后端服务器发送请求,获取处理结果。
HTTP重定向实现负载均衡
优点:采用HTTP重定向来实现服务器集群的负载均衡实现起来较为容易,逻辑比较简单。
缺点:在HTTP重定向方法中,调度服务器只在客户端第一次向网站发起请求的时候起作用。当调度服务器向浏览器返回响应信息后,客户端此后的操作都基于新的URL进行的(也就是后端服务器),此后浏览器就不会与调度服务器产生关系,进而会产生如下几个问题:
2)DNS负载均衡
请求过程:
当用户向我们的域名发起请求时,DNS服务器会自动地根据我们事先设定好的调度策略选一个合适的IP返回给用户,用户再向该IP发起请求。
DNS负载均衡
优点:
缺点:
3)反向代理负载均衡
请求过程:
用户发来的请求都首先要经过反向代理服务器,服务器根据用户的请求要么直接将结果返回给用户,要么将请求交给后端服务器处理,再返回给用户。
反向代理负载均衡
优点:
缺点:
调度者压力过大 。由于所有的请求都先由反向代理服务器处理,那么当请求量超过调度服务器的最大负载时,调度服务器的吞吐率降低会直接降低集群的整体性能。
制约扩展。当后端服务器也无法满足巨大的吞吐量时,就需要增加后端服务器的数量,可没办法无限量地增加,因为会受到调度服务器的最大吞吐量的制约。
Web服务器与集群
集群:
集群,英文名称为Cluster,通俗地说,集群是这样一种技术:它将多个系统连接到一起,使多台服务器能够像一台机器那样工作或者看起来好像一台机器。采用集群系统通常是为了提高系统的稳定性和网络中心的数据处理能力及服务能力。
服务器集群系统通俗地讲就是把多台服务器 通过快速通信链路连接起来,从外部看来,这些服务器就像一台服务器在工作,而对内来说,外面来的负载通过一定的机制动态地分配到这些节点机中去,从而达到超级服务器才有的高性能、高可用。另外,有两种常见的服务器群集类型:手动和自动。
redis(内存数据库)缓存
Redis 是一个开源(BSD许可)的,内存中的数据结构存储系统,它可以用作数据库、缓存和消息中间件。
它是基于高性能的Key-Value、并提供多种语言的 API的非关系型数据库。不过与传统数据库不同的是 redis 的数据是存在内存中的,所以存写速度非常快。
它支持多种类型的数据结构,如 字符串(strings), 散列(hashes), 列表(lists), 集合(sets), 有序集合(sorted sets)
NFS文件共享存储
NFS(Network File System)即网络文件系统。
主要功能:通过网络(局域网)让不同的主机系统之间可以共享文件或目录。
主要用途:NFS网络文件系统一般被用来存储共享视频,图片,附件等静态资源文件。
NFS存储服务
1)无NFS文件共享存储
当用户A通过互联网上传文件时,经过负载均衡,随机或者定向分配到某个节点。但是当用户B去下载这个文件的时候,并不确定会向哪个节点发送请求,这样会导致用户存在一定几率下载不到的情况。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-gLs0pVIx-1651121918217)(https://ask.qcloudimg.com/http-save/yehe-1434176/84ejgai1ut.png?imageView2/2/w/1620)]
2)有NFS文件共享存储
当用户A通过互联网上传文件时,经过负载均衡,无论发送到哪个节点都会被存储到NFS文件服务器。但是当用户B去下载这个文件的时候,任何节点都可以读取NFS文件服务器的文件。
[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Z3kqhpD-1651121918217)(https://ask.qcloudimg.com/http-save/yehe-1434176/8xvn07wmg9.png?imageView2/2/w/1620)]
NFS服务的优缺点
优点
缺点
在高并发下NFS效率/性能有限
NFS的数据是明文的,对数据完整性不做验证
多台机器挂载NFS服务器时,连接管理维护麻烦
容易发生单点故障,如果服务端宕机,所有客户端将不能访问
客户端没用用户认证机制,且数据是通过明文传送,安全性一般(一般建议在局域网内使用)
数据库
拆分数据库:
将一个数据库按所制定的的规则或类目进行拆分,得到多个数据库,提高sql性能。
分库分表:
单个数据库无法支持,可以考虑多个数据库;如果单个表内容太多可以考虑把表分开存储;单表数据量太大也可以表拆分或者类似分区表的形式处理,每个表的数据量保持少一点,提高 sql 跑的性能。
读写分离:
读写分离,就是大部分时候数据库可能是读多写少,没必要所有请求都集中在一个库上,可以搞个主从架构,主库写入,从库读取,读写分离。读流量太多的时候,还可以加更多的从库
跳板机/堡垒机/管理机
跳板机又称为堡垒机: 在对于大规模的服务器集群中,经常使用: 用来高效的管理服务器集群,比较常见的方案是搭建堡垒机环境作为线上服务器的入口,所有服务器都只能通过堡垒机进行的登录访问。因此需要通过终端链接到远程进程工作,这种方式下,能够很好的提高服务器集群的安全保证. 运维人员,需要首先登录到堡垒机上,在通过ssh登录到真实的服务器上。
rsync备份
RSYNC=Remote Sync 远程同步,与SCP的比较:scp=无法备份大量数据,类似windows的复制,rsync=边复制 ,边统计,边比较。
案例:
某公司里有一台Web服务器,里面的数据很重要,但是如果硬盘坏了,数据就会丢失,现在领导要求你把数据在其他机器上做一个周期性定时备份。要求如下:每天晚上00点整在Web服务器A上打包备份网站程序目录并通过rsync命令推送到服务器B上备份保存(备份思路可以是先在本地按日期打包,然后再利用rsync推送到备份服务器上)。
解决:rsync+nfs 实时同步,将所需备份内容备份到指定的服务器。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。