电脑网站页面怎么调大小,东莞招聘信息最新招聘2021,WordPress关闭邮箱通知,王也配音演员第一章
大数据的概念#xff1a;海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策
大数据的特点#xff1a;①数据量大#xff0c;存储的数据量巨大#xff0c;PB级别是常态#xff1b;②多样#xff0c;数…第一章
大数据的概念海量数据的规模巨大到无法通过目前主流的计算机系统在合理时间内获取、存储、管理、处理并提炼以帮助使用者决策
大数据的特点①数据量大存储的数据量巨大PB级别是常态②多样数据的来源及格式多样数据格式除了传统的结构化数据外还包括半结构化和非结构化数据③快速数据的增长速度快而且越新的数据价值要求对数据的处理也要快④价值密度低要求设计一种在成本可接受的条件下快速采集发现和分析从大量多种类别的数据提取价值的体系架构⑤复杂度对数据分析处理的难度大
云计算的概念云计算是一种商业计算模型将计算任务分布在大量计算机构成的资源池上使各种应用系统能够根据需要获取计算力存储空间等服务
短定义云计算是通过网络按需提供可动态伸缩的廉价计算服务
云计算的特点①超大规模②虚拟化支持用户在任意位置在各种终端获取服务但实际上不需要了解应用运行的具体位置③高可靠性采用数据多副本容错节点同构可互换的措施来保障服务的高可靠性④通用性云的特殊容错措施使得可以采用及其廉价的节点来构成云⑤高可伸缩云的规模可以伸缩⑥按需服务⑥极其廉价云的特殊容错措施可以使得用极其廉价的节点来构成云
云计算的分类
按照服务类型分类
①将基础设施作为服务IaaS给用户提供对所有设施的利用服务弹性云计算ECS、AWS
②将平台作为服务PaaS将软件研发的平台作为一种服务百度BAE新浪SAE阿里ACE京东JAE
③将软件作为服务SaaS协同OACRM财务系统企业智能系统和企业邮箱
按照部署模式分类
①公有云向公众开放任何人都能够租赁
②私有云只向一个企业或单位内的人员使用分为本地私有云部署在企业内部适合运行关键和机密业务托管私有云托管在第三方机房
③混合云只供两个或以上的特定企业或者单位内的人员使用其他人无权租赁和使用
④社区云由两个或者以上不同类型的云组成但用户使用感觉是一个云端资源
第二章
NAT虚拟机可以访问外网外网不能访问虚拟机网段不可以调整NAT Network虚拟机可以访问外网外网不能访问虚拟机网段可调整Bridged虚拟机可以访问外网外网可以访问虚拟机网段和主机相同Host-Only虚拟机不可以访问外网外网不可以访问虚拟机网段和主机相同
系统环境配置的步骤①下载安装VirtualBox下载系统镜像
②最小化安装CentOS出现安装引导页面时点击Tab键打开kernel启动选项增加选项:net.ifnames0 biosdevname0进入后网卡名会按照eth0eth1的规则命名同时进入安装页面之后选择最小化安装
③配置虚拟网络①设置Nat Network网段192.168.56.0/24和 Host-only网段(10.0.0.0/24)网卡一用于Nat网段网卡二用于Host-only网段。②在/etc/sysconfig/network-script/中设置主机网络自举协议为static启动开机自启设置IPADDR、NETMASK、GATEWAY、DNS1和DNS2③/etc/hostname修改本主机名称/etc/hosts修改其他主机名称解析然后测试网络连接
④禁用防火墙和SELinux关闭防火墙临时关闭systemctl stop firewalld 防止自动启动systemctl disable firewalld 关闭SELinux修改配置文件/etc/sysconfig/selinux设置SELINUXdisabled检查关闭是否成功systemctl status firewalld
⑤配置EPEL安装wget然后使用淘宝等镜像源
⑥安装基础软件安装工具软件包服务器软件包和开发工具JAVA、node.js、gcc
⑦创建快照并克隆虚拟机克隆完成后需要进行网络连通性测试随后对宿主机配置对所有虚拟机的免密登录
第三章
集群一组相互独立的通过高速网络互联的计算机构成了一个组并以单一系统的模式进行管理
集群的特性一个用户与集群相互作用时集群就像是一个独立的服务器
使用集群的目的①提高性能②降低成本③提高可扩展性④增强可靠性
集群的组织方式①主从结构将备份服务器连接到主服务器上备份服务器一般不主动提供服务
②多级结构多个服务器组成的集群服务器对外都有一个统一的地址每个集群服务器上都装有相同的应用程序 常用的命令
取消开机启动systemctl disable nginx
重启systemctl restart nginx
检查nginx进程ps aux | grep nginx
检查端口netstat intp | grep 80或netstat intp | grep nginx
负载均衡的配置搭建 常见的负载均衡方案分为硬件方案和软件方案硬件方案采用F5等设备但是比较贵。软件方案采用在四层使用LVS和在七层使用NginX实现负载均衡
Nginx仅仅是作为Nginx Proxy反向代理使用的但我们称这个反向代理表现的效果是负载均衡的效果。所以可以称之为负载均衡真正的负载均衡是转发用户请求的数据包真正负载均衡是转发用户请求的数据包而NginX反向代理是接收用户的请求然后重新发起请求去请求其后面的节点。 三个虚拟机都打开nginx服务并检查nginx的状态
在第三台虚拟机中NginX服务器中需要在/etc/nginx/nginx.conf文件中进行配置在upstream模块中需要添加模块配置
upstream www_servers_pool{server 192.168.0.11;#可以设置weight10或20来增加访问节点的权重server 192.168.0.12;
}
在server段中配置
server{...location / {proxy_pass http://www_servers_pool;}
}
重启第三台虚拟机的NginX服务访问10.0.0.13测试是否能够把流量分布到节点1和节点2中
高可用技术
高可用方案KeepalivedHeartbeat
VRRP通过竞选机制来将路由的任务交给某台VRRP路由器工作时主节点发包备节点接包。当备节点接收不到主节点发送的数据包的时候就启动接管程序接管主节点中的资源
Keepalived高可用对之间通过VRRP进行通信在Keepalived服务对之间只有作为主服务器的一方会一直发送VRRP广播包。 ①打开每台虚拟机的NginX服务
②开启第四台虚拟机的NginX服务配置第四台虚拟主机的/etc/nginx/nginx.conf中的server字段和upstream字段然后验证访问10.0.0.14是否能够将流量分配到节点1和节点2中
③设置第三个虚拟机/etc/keepalived/keepalived.conf添加邮箱router_id优先级以及vrrp的虚拟IP地址 notification_defs {rainsa163.com···}priority 101router_id lb01vrrp_instance VI_1 {virtual_ipaddress {10.0.0.200/8 dev eth1}}
systemctl start keepalived开启keepalived服务验证访问10.0.0.200时能否将流量分配至节点1和节点2中
④同理在第四个交换机中配置keepalived只需要修改优先级为99并且state为BACKUP即可
如何验证节点3和节点4之间keepalived是否配置成功在虚拟机3中关闭keepalived服务然后检查虚拟机的eth1中是否会出现10.0.0.200这个网段且能负载分担节点三关机后访问10.0.0.200仍然能实现负载分担节点三重新开机后又能成为主设备实现负载分担
NginX即使失效Keepalived仍然有效虚拟IP地址并不会自动迁移。只有当Keepalived服务关闭后迁移虚拟IP地址。
#!/bin/bash
if [ netstat -lntp | grep nginx | wc -l -lt 1 ];
thensystemctl stop keepalived
fi#赋予权限chmod 777 check_status.sh
#./check_status.sh
但是存在一定的问题当NginX恢复时Keepalived并不会自动恢复。Keepalived可以根据返回的状态修改服务状态例如降低实例的优先级
#check_nginx.sh#!/bin/bash
if [ netstat -lntp | grep nginx | wc -l -lt 1 ];
then exit 2#代表非正常退出
else exit 0
fi vrrp_script check_nginx { script /root/bin/check_nginx.shinterval 2 #执行时间间隔weight -50 #设置脚本的权重为-50fall 3 #连续执行失败的阈值次数为3连续三次执行中执行失败就返回失败rise 3 #连续三次执行中执行成功就返回成功timeout 2 #超时内没有得到执行结果就返回执行失败
}vrrp_instance VI_1 {...track_script {check_nginx#跟踪脚本的执行状态}
} 网站动静分离
动静分离的拓扑动态网站静态网站负载均衡器采用NginX实现
动态网站配置开发环境Eclipse/IDEAGradle/Maven建立springBoot项目springBoot项目打包jar包部署为网站建立服务开机自动启动
注意NginX默认的负载均衡机制无法支持动态网站必须修改请求头的内容才能在动态网站之间进行负载均衡
server{···location / {proxy_pass http://www.servers_pool;proxy_set_header Host $host;proxy_set_header X-Forward-For $remote_addr}}
静态网站Html、css、js文件静态网站与动态网站之间通过Ajax技术或WebSocket技术相互通信完成前后端对接
最后在NginX处实现动态网站和静态网站的分离主要依靠配置不同的路径对应的网址。首先为动态和静态部分配置不同的uptream
upstream static_servers_pool {server 192.16.56.14;
}
upstream dynamic_servers_pool {server 192.168.56.11server 192.168.56.12
}
然后为不同的路径配置不同的upstream
location /static/ {proxy_passs http://static_servers_pool;
}
location / {proxy_pass http://dynamic_servers_pool;
}
session保持
session问题的出现是由于负载均衡会将同一个用户的请求往不同的服务器转发而服务器之间无法共享其他服务器的session数据
主要的解决方案①服务器之间共享session②使用session集群③使得同一个用户的请求永远转发到同一个服务器
ip-hash的原理根据用户请求包中的五元组来判断是不是同一个用户的请求
文件上传
文件上传只能上传到单个服务器不同的用户将负载均衡器分配到不同的服务器节点则访问的文件可能完全不同
解决的策略设置一个或多个文件共享节点然后用户的文件主要上传到这些共享文件节点不同的用户都能从这个共享文件节点获取常用的技术是NFS
磁盘阵列
RAID0使用条带化适用于不需要容错环境中的大型文件RAID1使用镜像写入到一个硬盘的数据同时写入到另一个硬盘RAID5在所有硬盘上使用硬盘条带化和分布式奇偶校验RAID6分布式奇偶校验每个带区有两个独立奇偶校验块
条带将数据分割成离散的数据块并分布到硬盘阵列中的每个物理硬盘上 RAID0提供高带宽但是不提供任何的冗余硬盘发生故障会导致整个阵列数据丢失
RAID1能提供双倍的读速度一个硬件发生故障其它硬盘的内容也能运行系统硬盘要求最少2块硬盘且必须是偶数有效容量小存储空间利用率低 RAID5适用于读取请求率高但是写入请求率低需要数据冗余的情况。以最低的容量损失提供数据冗余高性能读取缺点是不适合大量的写入工作最少需要三块硬盘允许阵列中的1块硬盘发生故障 RAID6适用于读取请求率高但写入率低且需要较高的数据冗余的情况较高的数据冗余和数据读取率缺点是双奇偶校验会导致写入性能下降需要损失两块硬盘的容量来存放奇偶校验块 RAID10最多支持8个阵列跨接有较高的读取性能和数据冗余。缺点是有效容量小且存储空间利用率较低每个RAID1阵列允许1块硬盘发生故障 RAID50最多支持8个阵列跨接每个RAID5阵列允许1个硬盘发生故障适用于高可靠性高速率高速读写的中大型容量环境需要浪费部分存储空间做奇偶校验 RAID60:每个RAID阵列允许2个硬盘发生错误最多支持8个硬盘阵列跨接提供较高的读取性能和数据冗余不适合大量的写入工作 第四章
分布式的概念一组独立的计算机展现给用户的是一个系统来完成一个统一的工作但是系统内可以动态地分配任务。分散的物理和逻辑资源通过计算机网络实现信息的交换
分布式的特点计算速度加快对等性没有主从之分、并发性、缺乏全局时钟、故障总会发生
分布式与集群的区别①原理上集群中每台服务器执行的任务都是一样的。本质上是将几台服务器集合到一起来实现同一业务。分布式是按照一定的算法将任务分配给多台服务器提高的是执行任务的时间业务被分配到不同的地方
②容错能力上集群服务器中如果有故障的服务器可以自动隔离问题解决后再自动恢复而分布式服务器一旦出现问题任务就无法正常执行
Reidis的基本操作
Redis不区分命令大小写但是区分键名的大小写
help 获取组中的所有命令
help获取命令帮助
quit退出
获得符号规则的键名称
keys 表达式 (?,*,[],\?)判断一个键是否存在
exists key删除键
del key
del key1 key2批量删除
redis-cli del redis-cli keys key*
redis-cli keys key*: 这是在 redis-cli内部再次执行keys 命令以匹配所有以 key 开头的键。keys 命令用于获取匹配指定模式的所有键的列表。获得键值的数据类型
type key
返回的值可能是string,hash,list,set,zset
使用config set 可以动态地设置参数信息服务器重启后就失效了
config set appendonly yes
config set save 90 1 30 10 60 100
使用config get可以查看所有可以使用config set命令设置的参数
config get *
使用config rewrite命令对启动Redis服务器时所指定的redis.conf文件进行改写。该指令对文件的重写是原子性的并且是一致的。如果重写失败或出错那么这个文件就不会被修改
IP Hash实现session保持的缺点解决办法
①持续化session到数据库
②使用Redis共享session
③使用memcache同步session
④通过脚本或守护进程在多台服务器之间同步session
⑤使用NFS共享session
⑥使用cookie共享session
HDFS
两类节点①namnode管理文件系统的命名空间维护系统文件树及整棵树内所有的文件和目录关系
②datanode以数据块的形式存储具体的数据
缓存与一致性哈希
缓存是存储在计算机上的一个原始数据复制集介于数据访问者与数据源之间的一种高速存储。当数据读取的时候直接从高速存储中获取如果可以获取到结果就无需访问数据库直接返回缓存的内容
如果缓存未命中就从数据库中获取一方面可以提高数据的读取速度另一方面还能降低数据库的性能消耗。没有缓存阻挡大量的请求直接落到系统的底层系统很难撑住高并发的冲击
缓存穿透查询一个根本不存在的数据大量的缓存穿透直接落到存储层后端系统容易被压垮
缓存雪崩缓存层由于某些原因不等你提供服务导致所有的请求直接到达存储层
预防和解决缓存穿透与缓存雪崩的方案
①取模法对键值取节点数的余。存在一定问题扩展能力差容错能力不佳
②一致性哈希首先构建一个哈希环然后计算缓存集群中服务器的IP或主机名来计算得到Hash值计算得到的Hash值就是服务节点在环上的位置
然后对每个需要存储的数据key也同样计算一次哈希值计算之后的哈希值也映射到环上然后沿着环的顺时针方向寻找到第一个服务器节点就是存储节点
一致性哈希能把节点宕机造成的影响控制在顺时针相邻节点之间避免对整个集群造成影响
一致性哈希存在的问题当服务器节点聚集在一起容易造成数据倾斜问题给单个节点造成很大的压力。解决办法是采用虚拟节点将虚拟节点分散在哈希环的各个部分打在虚拟节点上的数据实际也是映射到物理节点上 虚拟化
虚拟机迁移将虚拟机实例从原宿主机迁移到目标宿主机中并且在目标宿主机上能够将虚拟机运行状态恢复到其在迁移之前相同的状态以便继续完成应用程序的任务
虚拟机迁移的分类①从源和目的角度分物理机到虚拟机虚拟机到物理机虚拟机到虚拟机
②按照迁移的状态虚拟机停机迁移冷迁移、虚拟机在线迁移热迁移、实时迁移
实时迁移的步骤①预迁移②预定资源③预复制④停机复制⑤提交启动
虚拟机和虚拟化容器的区别
Docker
Docker是一个开源的应用容器引擎基于GO语言并可以让开发者打包他们的应用及依赖包到一个轻量级可移植的容器中然后发行到任何流行的Linux机器上
Docker包含三个基本概念镜像相当于一个root文件系统、容器镜像运行时的实体、仓库一个代码中心可以用来保存镜像
Docker使用客户-服务器C/S的架构模式使用远程API来管理和创建Docker容器
常见命令
在容器内运行应用程序
docker run ubuntu:15.10 /bin/echo Hello world-t指定一个伪终端-i允许对容器内的输入进行交互
docker run -i -t ubuntu:15.10 /bin/bash以进程的方式运行容器
docker run -d ubuntu:15.10 /bin/sh -c 命令查看运行中的容器
docker ps查看容器内的标准输出
docker logs [容器ID或容器名]停止容器
docker stop [容器ID或容器名]从远程仓库载入ubuntu镜像
docker pull ubuntu进入交互模式
docker attach:退出会导致容器停止
docker exec退出容器终端并不会导致容器停止删除容器
docker rm -f [容器ID或容器名]
docker rmi [ID或镜像名]查看网络端口
docker ps
docker port [容器ID] 将内部的TCP端口映射到外部端口 5000 tcp - 0.0.0.0:5000查看容器内部运行的进行
docker top列出本地主机上的镜像
docker images搜索镜像
docker search httpd提交容器副本
docker commit -mhas update -a镜像作者 [容器ID] [创建的目标镜像名]镜像标签
docker tag [镜像ID] [用户名字] [镜像源名称] [新的标签名]端口映射让外部也能访问这些应用
docker run -d -p 5000:5000 training/webapp python app.py //先是主机端口再是容器端口
-p是容器内部端口绑定到指定的主机端口
-P是内部端口随机映射到主机的高端口
OpenStack
OpenStack的核心服务组件①计算服务Nova②存储服务Swift③镜像服务Glance
其余主要服务组件④身份认证服务keystone⑤网络管理服务Quantum⑥存储管理服务Cinder⑦仪表盘Horizon
计算服务Nova
是OpenStack云中的计算组织控制器处理OpenStack云中实例生命周期内的所有活动不具备虚拟化能力
组件API Server向外提供与云基础设施交互的接口
Message QueueOpenStack节点之间通过消息队列完成通信
computer worker管理实例生命周期
Network Controller处理主机的网络配置
Volume Workers管理基于LVM的实例卷
Scheduler调度器作为一个守护进程运行并通过恰当的调度算法从资源池获得计算服务 LibVirt的主要支持功能
①虚拟机管理
②远程机器支持
③存储管理
④网络接口管理
⑤虚拟NAT和基于路由的网络
OpenStack的版本
采用顺序命名法用完了再回来重新命名
第五章
数据中心网络与传统Internet网络的区别高设备利用率采用虚拟化技术进行系统和数据中心整合优化资源利用率简化管理
绿色节能通过先进的供电和散热技术降低数据中心的能耗
高可用性提供大量同质化设备和替代恢复机制确保资源的可用性和数据的持久性
自动化管理
FatTree 相对于传统层次结构而言FatTree的特点①消除了树形结构上层链路对吞吐量的限制所有交换机配置均相同②为内部节点间通信提供多条并行链路③横向扩展的尝试降低了构建数据中心网络的成本④与现有数据中心网络使用的以太网结构和IP配置的服务器兼容 FatTree的计算
核心层交换机有k个出口能够建立k个Pod吗每个pod有k个交换机。接入层与汇聚层有一半的端口是完全关联的。
汇聚层交换机数目接入层交换机数 k/2* k
核心层交换机数目 (k/2) * (k/2) 因为一个pod中一个汇聚层交换机向上有k/2个接口
主机数 (k/2) * (k/2) * k
从终端到接入层的网络容量 (k/2) * (k/2) * k
接入层到汇聚层的网络流量 (k/2) * k * (k/2)
汇聚层到核心层的网络流量 (k/2)*k*(k/2) 改进型树结构采用VL2架构将流量统一地分配到网络路径
递归层次数据中心构建高层次网络时需要的低层网络的个数等于每个低层网络中的服务器个数加1
光交换数据中心
无线数据中心