赞
踩
1.tcp/ip 原理,tcp 有哪几个状态,分别是什么意思
三次握手:
举一个打电话例子来说明一下:
第一次握手:小明说:“喂喂喂,能听到我说话吗?”
第二次握手:小萌说:“我可以听到你说话,你能听到我说话吗?”(我回了你一句,说明了我可以听到你说话(说明了我具有接受消息的能力))
第三次握手:小明说:“我听到你说话了”(双方都可以听到对方了声音,表示没有问题,样就可以进行通话了(建立了 TCP 连接))
四次挥手:
第一次挥手:小明:“我说完了,我要睡了”(主动关闭方发送一个信息,告诉告诉被动关闭方:我已经不会再给你发数据了)
第二次挥手:小萌:“好的,知道了”(被动关闭方收到信息,发送一个类似收到的信息给对方)
第三次挥手:小萌:“恩,我也说完了”(被动关闭方发送一个信息,告诉主动关闭方,我的数据也发送完了,不会再给你发数据了)
第四次挥手:小明:“恩”(主动关闭方收到信息后,发送一个类似收到的信息,完成四次挥手)
2.你们公司的负载均衡用的什么
我们公司在负载这方面使用的是nginx+LVS的模式,这种模式将所有的流量都打在nginx上,是比较好的
3. LVS与nginx有什么区别
我们公司使用的是nignx,nignx相对于LVS来说,nginx是工作在网络层的第七层,可以对http应用实施分流操作,LVS是不具备这样的功能的,但是在我们的使用过程中发现nginx的一些不足,随着公司业务的扩展,服务器的增加,nginx的负载能力慢慢下降,所以我们对nginx做了一些调整,增加了LVS,现在公司的负载是nginx+LVS的模式,可以更好的开展业务
4. LVS作为负载均衡,用的什么模式
我们公司用的是DR模式,首先说LVS的三种模式分别是:DR、NAT、TUN,DR模式相比是这三种模式中性能最高的,同时在负载方面也是真实服务最多的,所以我们公司使用的是DR模式
5. DR模式原理
客户端向目标vip发出请求,lvs接收后根据负载均衡算法选择一台节点,将此节点的ip所在网卡的mac地址作为目标mac地址,发送到局域网里;节点在局域网中收到这个帧,拆开后发现目标IP(VIP)与本地匹配,于是处理这个报文。随后重新封装报文,发送到局域网。此时IP包的目标ip是客户端,源ip是自己的vip地址
6.nginx作为负载均衡,你用的什么模块
是upstream模块和proxy模块
7. nginx 作为负载均衡,你们用的什么模式
我们公司使用的是nginx的ip_hash模式,ip_hsah相比于其他的模式他有一个优点,可以将同一个IP用户规定访问到一个后端服务器,解决了session的问题
8. DR模式与NAT有区别
我们公司使用的是DR模式,它和NAT相比来说,DR模式可以给服务器减少压力,但是我们在使用过程中发现DR模式也是有不足的地方,就是有着局限性,分发器与realserver必须在同一个局域网中,否则是不能实现的。
9. LVS脑裂有没有遇到过,怎么处理的
脑裂我们公司没有遇到过,脑裂是一个完成的系统,分裂成两个独立的节点,并且这两个节点开始争抢资源,导致系统混乱,数据损坏,对于MySQL服务特别重要,预防的话,我们可以借助keepalived提供的vrrp_script及track_script实现
10.有没有接触过F5
我们公司没有使用F5,使用的是nginx负载’
11.你们公司用的web服务是什么
我们公司主要是用是nginx前端web服务
12.Apahce和nginx的区别
我们公司使用的是nginx前端服务,nginx相对于apache来说是轻量级,同样是web服务,比apache占用内存及资源更少,抗并发方面也是,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持高性能,在是使用的过程中我们发现nginx有一些不足,他在健康检查方面只能通过端口来检测,不支持url来检测,并且说支持的协议比较少,我们对这方面进行了优化
13.动静分离你们用什么做的
我们动静分离使用的是nginx+tomcat做的,静态由Nginx处理, 动态由Tomcat处理
14.设置动静分离的模块是什么
使用的是ngx_http_proxy_module这个模块
15.Nginx+tomcat如何实现动静分离
简单来说使用Nginx处理静态页面,Tomcat处理动态页面,因为Tomcat是一个比较全面的web容器,对静态网页的处理,应该是比较费资源的,所以将静态资源和动态资源隔离开、能够有效的减轻Tomcat服务器的压力,提升网站整体性能。实现就是修改nginx的配置文件,使用nginx的proxy模块,做一个后端服务器组名,然后使用upstream的模块,去做分发请求
16.什么是动态数据,什么是静态数据
静态数据就是不经过后台处理的数据,比如:img、js、css、html等
动态数据就是经过后台处理的数据,比如:jsp、servlet等
17.Nginx你们承受多少并发
我们公司nignx的承受并发在2W左右
18.你们公司平时并发量多大
平常公司的并发就是在2000左右,有活动的时候2w
19.Toncat里面主要跑什么业务,或者说是跑的是什么
跑的是一个公司的官网
20.20. Tomcat的端口号是多少
Http访问端口号是8080,关闭服务端口shutdown端口是8005,AJP协议访问端口是8009
21.21. Tomcat调优怎么做的
我们公司在tomcat方面一般是不动,基本上是java开发人员哪里说是需要调一下jvm,然后我这边修改一下,其余方面没有修改
22. Nginx调优怎么做的
运行工作进程数、运行CPU亲和力、最大打开文件数、gzip调优、防盗链、隐藏版本号、隐藏软件名、优化woeker进程数、优化nginx连接超时时间
23.Apache调优怎么做的
Apache启动时创建的子进程数、空闲状态最小子进程数、子进程的最大并发数、同时连接的最大子进程数
24.Apache端口号是啥
Apache的访问端口是80
25.什么是动态数据
需要经过后台处理的请求,比如:jsp、servlet等请求是静态数据
不需要经过后台处理的请求,比如:html、css、js、jpg、png、txt等请求
26.出现500错误你是如何解决的
500是内部服务器错误,处理方法是打开浏览器的显示http友好错误提示,获得正确的错误提示后,就可以根据错误提示去检查具体出错的原因
27.出现301错误你是如何解决的
301是应用程序错误,处理方法是从应用程序本身考虑,是否存在bug
28.Nginx你用过哪些模块
CORE 核心模块,HTTP 处理模块,EVENT 事件处理模块,MAIL 邮件处理模块,PROXY 代理模块
29.你在负载web服务器的时候遇到过什么问题
有一次公司在做一个推广活动,某一台服务器负载特别高,但是其他的负载服务器是正常的,导致用户访问慢,我去处理,发现是服务器接受的网络请求不均衡,负载不均衡导致的,我将配置文件中的权重值及时调整,最后总结:做负载的时候,服务器接受的请求一定要均衡
30. Nignx反向代理的原理
反向代理是客户端访问web服务器时,请求发送到真实的web服务器的前端"助手"服务器上,由"助手"服务器决定将此请求转发给哪个真实的web服务器,外界客户端以为"助手"服务器就是真实的web服务器,而实际上它不是,也不需要安装任何web程序。"助手"服务器称为反向代理服务器。
31.nginx反向代理的优点是什么
反向代理他是指以代理服务器来接受客户端的连接请求,然后将请求转发给网络上的web服务器,并将web服务器上得到的结果返回给请求连接的客户端,此时代理服务器对外就表现为一个服务器。
①跨平台 ②部署:配置简单,容易上手 ③非阻塞。高并发连接 ④事件驱动
⑤Master/Worker结构 ⑥内存消耗小 ⑦内置健康检查功能 ⑧节省宽带 稳定性高
32.正向代理和反向代理的区别
正向代理是客户端和其他所有服务器的代理者,而反向代理是客户端和反向代理服务器所代理的服务器之间的代理
总结:一个对客户端负责,一个对所代理的服务器负责。一个正,一个反。
33.nginx是如何处理http请求的
nginx首先决定要用配置文件里的哪个server{}块来处理,假设有下面的server{}配置
nginx会根据过来的http请求头里的Host字段里的值,来判断使用哪个server{}。
如果请求头里没有Host字段,或者Host字段里的值,和Nginx配置文件里的server{}里的{server_name}都不匹配,则使用第一个server{},来处理这个请求。
如果请求头里的Host字段里的值和Nginx配置文件里的某个server{}里的{server_name},匹配上了,则使用这个server{},来处理这个请求。
34.nginx作为负载均衡的策略有哪些?
nginx 作为负责均衡的策略的话,我知道的有轮询,权重,iphash ,还有urlhash,但在公司里面我们主要的是iphash
Ip_hash:指定负载均衡器按照基于客户端IP的分配方式,这个方法确保了相同的客户端的请求一直发送到相同的服务器,以保证session会话。这样每个访客都固定访问一个后端服务器,可解决session不能跨服务器的问题。
35.Apahce和nginx的区别
我们公司使用的是nginx前端服务,nginx相对于apache来说是轻量级,同样是web服务,比apache占用内存及资源更少,抗并发方面也是,nginx处理请求是异步非阻塞的,而apache则是阻塞型的,在高并发下nginx能保持高性能,在是使用的过程中我们发现nginx有一些不足,他在健康检查方面只能通过端口来检测,不支持url来检测,并且说支持的协议比较少,我们对这方面进行了优化
36.nginx你们用的哪个版本
我们公司用的是nginx1.16
37.nginx是如何实现高并发的
异步,非阻塞,使用了epoll 和大量的底层代码优化。
38.nginx虚拟主机有几种方式
1、基于域名的虚拟主机
2、基于端口的虚拟主机
3、基于ip的虚拟主机
39.nginx服务器上master和worker的区别
Worker进程是负责处理请求的进程
master进程负责管理worker进程的同时也负责读取配置文件和判断配置文件语法的
在nginx中,master进程只能有一个,而worker进程可以有多个
40.nginx日志切割怎么做的
1.找到日志路径
2.使用命令进行日志进行切割 如:日期、状态码等
3.把切割的日志保存到一个指定的文件中
数据库
41.你们的数据库版本是啥
我们使用的是mysql5.6
42.你们的数据库有没有做过升级
做过,是从MySQL5.5–>5.7的,开发和测试方面做了一个版本的统一,先是对数据进行测试升级的可行性,然后是数据的迁移,最后是数据的对比
43.你们的数据库存储引擎是啥
我们使用的是InnoDB存储引擎
44.oracle和mysql的区别,以及端口号
mysql 默认端口号为:3306
oracle 默认端口号为:1521
45.删除一个数据库有哪两种方式,区别是啥
删除一个数据库,可以使用delete或者是truncate这两种方式,delete语句删除记录的时候,记录是逐条删除的,而truncate删除数据时不产生回退信息,如果需要删除大量数据的时候用delete则占用较多的系统资源,使用truncate会快得多
46.如何导入数据库
我们是使用mysql命令进行导入的,有时也使用source
47.你们平时是怎么备份的
我们公司使用的是一周一全备、每天一增备,全备用mysqldump,增备用xtrbackup
48.你们的数据量有多大
每天的数据量在5G左右
49.数据库端口号是多少
MySQL数据库的端口号是3306
50.你做过什么样的数据库架构
Mysql主从、读写分离、MMM架构
51.主从原理是啥
Master将数据改变记录到二进制日志(bin log)中,也是配置文件log-bin指定的文件(二进制日志事件—binary log events),slave将master的binary log events拷贝到它的中继日志(relay log),slave重
做中继日志中的事件,将该笔那反应它自己的数据(数据重演)重新执行一下,默认一分钟同步一次
52. 主从延迟是怎么产生的
一个服务器开放N个链接给客户端来连接的,这样有会有大并发的更新操作, 但是从服务器的里面读取binlog 的线程仅有一个, 当某个SQL在从服务器上执行的时间稍长 或者由于某个SQL要进行锁表就会导致,主服务器的SQL大量积压,未被同步到从服务器里。这就导致了主从不一致,也就是主从延迟
53. 你们读写分离用的是什么
我们是使用amoeba进行读写分离的
54.你们数据如何存储
首先创建索引,然后修改缓存的配置,对show_query_log进行分析,最后分库分表
55. 主从延迟,你们是如何让解决的
从三方面进行解决:从缓存中读取数据、提高从库的配置、强制从主库取数据
56.增量备份和全量备份的区别
顾名思义,全零备份就是每隔一段时间对系统进行一次完全备份,这样在备份时间间隔内一旦系统发生故障导致数据丢失,就可以用上一次的备份数据恢复到上一次备份时的情况。而增量备份是在全量备份的基础上,每隔一个较短时间进行一次备份,仅备份在这个期间更改的内容。这样一旦发生数据丢失,首先恢复到前一个完全备份。然后按日期逐个恢复
Redis
57.redis集群你用过什么方式
Redis的主从模式,在主从模式上又加入和哨兵模式
58.Redis的哨兵模式原理
Redis的哨兵系统模式是用于管理多个redis服务器,他可以监控maste和slave的运行状态,还可以提醒某个监控下的redis服务器出现问题是发出通知
59. Redis的持久化怎么做的
我们使用Aof和rdb做的,aof持久化存储是可以保证数据的完整性,就是比rdb的文件要大,而且恢复的速度要慢,rdb的就是在流量比较大的时候速度要比aof要快,但是数据容易丢失
60. Redis你们主要存储什么
我们一般主要存储一些缓存数据和网站的信息,比如网站页面的缓存信息,还有一些热点数据,就像新闻网站的时事热点微博等这些数据信息,不过这些缓存数据信息更新比较快,而且流量大,我们采用的是rdb的持久环存储
61.memcache 和redis有什么区别
我们公司使用的是reids,它相对于memcache来说,redis支持数据持续化存储而memcacha不支持,但是在我们的使用过程中,发现redis数据集非常巨大,并且CPU间非常紧张的话,那么这种停止时间甚至可能会长达整整一秒,所以我们对redis更改了缓存方式
62. memcache的工作原理
memcache是以key-value形式存储的,key会通过一个hash表转换成hash的key,便于查找对比。客户端通过key的hash值确定数据的位置,然后向服务端发出请求,获取真实的数据
63. redis的持久化怎么做的,优缺点是什么
Redis的持久化呢一共有两种,一种是RDB,另一种呢是AOF,我们公司使用的AOF,AOF呢就是我们所说的写日志,让命令记录到日志,宕机的时候,对日志进行回放就行了,然后,AOF持久化存储是可以保证数据的完整性,就是比RDB的文件要大,而且恢复的速度要慢,RDB的就是在流量比较大的时候速度要比AOF要快,但是数据容易丢失。所以呢,我们公司用的是AOF
Zabbix
64.你们公司的监控是什么,zabbix监控是什么版本
我们公司使用的是zabbix监控的,使用的是4.0版本
65.Zabbix监控MySQL监控哪些参数
我们使用zabbix监控MySQL的主从状态、IO线程、innodb状态、CPU使用率
66.Zabbix监控nginx监控哪些参数
我们公司使用zabbix去监控nginx的运行状态,CPU使用率,内存使用率
67.用过哪些zabbix模板常用的有三个模板
Template TCP Connection Status.xml TCP链接监控模板
Template Nginx Connection.xml nginx链接监控报警
Template Mysql.xml MySQL监控报警
68.Zabbix邮件报警如何做的
添加邮件有很多方式,我们公司是使用安装邮件发送工具mailx的方式,配置zabbix服务端邮件报警,然后设置zabbix用户报警邮箱地址,添加设置zabbix触发报警的动作,最后测试报警功能
69.Zabbix监控微信报警怎么做的
首先申请一个企业公众号,在微信企业公众号上新建应用,做接口的调节测试,然后配置脚本,web端新增报警媒介类型,最后配置用户报警媒介信息,测试是否成功
70.Zabbix监控钉钉报警怎么做的
首先添加钉钉机器人,然后添加自定义机器人,创建报警媒介类型,配置动作, 添加钉钉报警动作,配置用户媒介,测试是否成功
71.Cpu飙高你们是如何设置报警
当CPU达到90%,并且在一分钟内连续三次到达阈值,自动微信报警
72.Zabbix有哪两种模式
Zabbix有两种监控模式,主动监控模式和被动监控模式,两种模式
73.Zabbix自动发现功能有没有用过
使用过,现在客户端安装agent,然后web端有一个自动发现的模块,点击进行设置等待即可
74.如何添加一台主机监控
首先登录zabbix的web前端界面,点击上方的配置,选择主机,点创建主机,填写主机的信息,点击添加即可
ansible
75.你有没有用过ansible
用过一般使用自动化工具最多的就是ansible
76.Ansible和saltstack有什么区别
我们公司在自动化方面使用的是ansible,它相对于saltstack来说,安装运行比较简单,并且不需用客户端,但是在我们的使用过程中发现是ansible的架构模型是单点,而saltstack是cs架构,saltstack支持api跟自定义的python模块从而实现功能扩展
77.你用ansible做过什么
运用ansible自动化部署过redis哨兵集群
78.写过哪些playbook
日常巡检CPU、内存、磁盘空间
79.Playbook常用的基础命令
Tasks:任务,由模板定义的操作列表
Variables:变量
Handlers:处理器 ,当某条件满足时,触发执行的操作
Roles:角色
Templates:模板,即使用模板语法的文件
80.Anisble有哪些模块
command模块 shell模块 copy模块 cron模块 fetch模块 file模块 hostname模块 yum模块 service模块 user模块 setup模块
Docker
81.Docker的持久化怎么做的
docker可以支持把一个宿主机上的目录挂载到镜像里直接在容器中创建一个数据卷
挂载主机目录作为数据卷容器
82.Docker的基础命令
Docker ps -a 查看所有的容器
Docker rename 容器重命名
Docker pull 拉取镜像
Docker 查看本地的镜像
Docker rmi 删除镜像
Docker run 下载、创建、运行运行一个容器
Docker ps 查看正在运行的容器
Docker restart 重启容器
83.你们公司的docker主要用来做什么
redis集群是跑在docker
nginx静态请求放在docker ,做持久化
进行演示 对于客户来说,我可以直接将 Docker 镜像提供给他们,而不必去做任何环境配置的工作,工作的效果也会和在他们演示中所看到的一模一样,同时不必担心他们的环境配置会导致我们的产品无法运行。
84.docker的网络有哪些
bridge:桥接网络,基于docker0实现
none:无网络,外部用户无法访问
host:让容器和宿主机使用相同的地址
docker怎么做的持久化
docker volume是用于解决docker容器数据的持久存储问题
85.docker用的什么版本
常用的docker-ce-18.06版本
86.docker跟虚拟机有什么区别
docker是基于资源创建的,虚拟机是基于物理上的
docker是轻量级的,虚拟机是物理级的
87. 怎么进入容器(docker)
使用docker exec
88.你们公司的docker主要用来做什么
redis集群是跑在docker
nginx静态请求放在docker ,做持久化
进行演示 对于客户来说,我可以直接将 Docker 镜像提供给他们,而不必去做任何环境配置的工作,工作的效果也会和在他们演示中所看到的一模一样,同时不必担心他们的环境配置会导致我们的产品无法运行。
89.docker的网络有哪些
bridge:桥接网络,基于docker0实现
none:无网络,外部用户无法访问
host:让容器和宿主机使用相同的地址
90.docker怎么做的持久化
使用docker volume是用于解决docker容器数据的持久存储问题
91.Docker 和 vmware 区别
传统虚拟机技术是虚拟出一套硬件后,在其上运行一个完整操作系统,在该系统上再运行所需应用进程;而docker容器内的应用进程直接运行于宿主的内核,容器内没有自己的内核,而且也没有进行硬件虚拟。因此容器要比传统虚拟机更为轻便。
92.openstack有哪些组件
keystone(身份服务模块),其作用是:认证管理服务、提供了其余所有组件的认证信息/令牌的管理、创建、修改等等。
Nova(计算服务组件),其作用是:计算资源的管理,实例生命周期的管理(虚拟机),对外提供Restful API通信。
Glance(镜像服务组件),其作用是:提供虚拟机镜像的存储,查询和检索功能,为nova进行服务,依赖于存储服务(存储镜像本身)和数据库服务(存储镜像相关的数据)。
Swift(对象存储服务模块)其作用是:提供高可用分布式对象存储服务,特点是无限和扩展没有单点故障。
Cinder(块存储服务模块)其作用:管理所有块存储设备,为虚拟机提供存储服务。
Neutorn(网络服务组件)其作用:为云计算提供虚拟的网络功能,为每个不同的租户建立独立的网路环境。
Ceilometer(监控服务组件)其作用是:为上层的计费、结算或者监控应用提供统一的资源使用数据收集功能。
Horizon(控制台服务)其作用是:提供了以Web形式对所有节点的所有服务的管理,通常把该服务成为Dashboard。
93.阿里云用过哪些产品
ECS 云服务器
RDS 关系型数据库
SLB 负载均衡
OSS 开放存储服务
ESS 自动伸缩
94. oss你们主要用来存储什么
1、图片和音视频等应用的海量存储
2、网页或者移动应用的静态和动态资源分离
3、云端数据处理
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。