PHP高级工程师之LInux集群(多态主机组合起来,完成一个任务)
在这里和大家分享一下多数网络黑客常用的攻击方式及预防措施。
如有不善,多提意见(QQ:1595068971-邮箱:[email protected])
负载均衡集群LB(提高服务的病发处理能力为根本)增加处理能力
衡量标准: 病发处理能力(一次性能够处理多少个请求)
高可用集群HA(提升服务的始终在线能力为根本,不会因为宕机而导致服务不可用)增加服务可用性
衡量标准:在线时间 / (在线时间+故障处理时间)
99%,99.9%,99.99%,99.999%
取而代之的服务器(启动进程,IP地址,可以写数据)
据调查打开网页超过3秒以上,流失达到60%。
基础概念 模拟200病发用户,50个动态请求,150个静态请求(进程占据2M 动态10M)500+150*2=800M
配置了一个4G内存 2cpu来处理。
问题:随时随地需要接受200个请求。会大量的涉及网络IO和磁盘IO(CPU切换资源,访问磁盘文件)
处理方式一:Scale on 向上扩展。升级服务器,增加内存,增加CPU
硬件增长的比例所带来的性能增长比例(4G,2cpu != 16G,8cpu)
处理方式二:Scale out 向外扩展 增加服务器(不同的用户访问不同的服务器 也叫 负载均衡-LB)
ABC,ABC,ABC,ABC这样的分发规则叫轮训
负载均衡的缺陷:比如A用户第一次访问-》DNS解析-》存到缓存-》分配服务器。也就是说A用户经过一次访问,状态被存在缓存里,之后再次访问还是会被分配到同一台服务器。导致不会根据现有的情况时时分发。
从浏览器看到的内容未必是来自同一个服务器
负载均衡图解:
它有高可用能力,却不是高可用集群(它不能通知心跳信息)
同时调用一个Mysql,上传文件存放NFS里。
负载均衡集群的服务器性能不一样怎么办?
如果服务器所承载能力,配置不一样,处理的能力也就不一样。能者多劳的去分发请求。也就是说分发器应该可以兼容不同的场景。(也叫加权ERR)
A服务器 给两个
B服务器 给一个
C服务器 给一个
分发器承受不住怎么办?
把页面分成模块,一个模块请求一个负载均衡集群。
搭建一个更好的分发器。
主分发器随时向外通知自己的心跳
后端服务器的健康状态检查(headrtbeat):
分发器连续检查服务器三次,确定服务器坏了,把这台服务器踢出去。
,如果服务器好了,在搭建会来。
页面文件放在哪里?
页面文件放在一个服务器上,更新的时候只能信一台服务器,其他服务器同步更新(rsync复制文件,只复制不同的文件,支持远程)
内核监控文件(inotify)如果页面文件服务器发生改变,向其他服务器发起通知,过来copy。
NFS文件共享服务器:
文件存储在NFS的磁盘中,web服务器请求以文件级别的方式请求,
一个文件包含许多个块
高可用集群图解:
多台主机通过一台交换机互相通信,发送心跳信息(只向特定主机传递)
如果每搭建一台服务器,都需要搭建一台从服务器防止主机坏死,是不是很耗费资源?
IP,wei服务,页面文件
有一台是主服务器(DC)负责协调这些节点之间所完成各种事务 也叫 事务协调员;
如果DC挂掉从新推选
脑裂问题?
如果老大没死,太忙了,没发送心跳。老二以为老大死了,就把老大的活接过来,在给老大补一刀,让他死;
都继承电源交换机-电源交换机发送指令,老二告诉电源,切掉老大的电源。这种操作叫做(爆头)
避免集群分裂至少有三个节点
为了保证第一个节点挂掉,第二个节点的数据和第一个节点是一样的(第一个节点允许写操作)
DAS-NAS
建立read阵列共享存储
块请求,共享服务器里什么都没有,是空的,没有锁。
两台主机同时请求NFS,NFS会把A上锁,拒绝B
文件请求