基础面试题总结—Nginx、MySQL、Redis、ELK、集群

一、基础服务及端口号

在这里插入图片描述

二、Nginx

1.优化
进程用户、gzip压缩、fastCGI、防盗链、隐藏版本号、进程以及线程、连接超时、日志切割
2.常用的IO模型。
同步、异步、阻塞、非阻塞
3.日志抓取的shell
awk ‘{print $1}’ | uniq -c | sort -rn | head -10
4.简述web资源请求的过程
  1.对网址进行DNS域名解析,得到对应的IP地址
  2.根据这个IP,找到对应的服务器,发起TCP的三次握手
  3.建立TCP连接后发起HTTP请求
  4.服务器响应HTTP请求,浏览器得到html代码
  5.浏览器解析html代码,并请求html代码
  6.浏览器对页面进行渲染呈现给用户
请求方式get、post
5.nginx进程之间的关系
Master负责监督worker以及cache,cache缓存的时候也需要worker,worker死掉的时候,master会迅速的拉起一个新的worker
6.nginx,它的优势和功能?
Nginx是一个可以对外提供web服务的一个中间件,也可以做负载均衡,还可以提供静态缓存,处理静态资源的请求,速度非常快,并且配置起来比较简单,第三方模块非常多,可以根据客户的要求实现不同的功能,还可以在不停服务的情况下做热部署。
7.web服务器错误代码:200、301、302、403、404、500、502、503
200请求成功
301被请求的资源已经永久的移动至新的位置
302临时重定向
403服务器处理请求但是拒绝执行
404请求失败,一般两种情况,页面不存在或者是服务器提供web服务出现了问题
500一般这个问题是源代码出现问题
502无效的响应
503拒绝客户连接
8.nginx配置文件由哪些部分组成?
Global全局配置、http、虚拟主机server

三、集群

1.简述LVS 的工作模式及其特点。
NAT 调度器负责接受请求和回复请求
DR 调度器负责接收请求,后端节点负责回应请求(后端节点需要抑制arp广播,并且需要设置在回复请求的时候使用他自己的ip以及mac,不然使用vip的话会把网关的apr表中的vip刷新,导致下次流量进来的时候直接找后端节点)
TUN 可以实现调度器和节点不在同一局域网,跨公网调度
2.简述LVS 负载均衡集群中常见的调度算法。
轮询、加权轮询、最小连接数、加权最小连接
3.简述keepalived软件的作用。
对后方节点做心跳检测以及实现调度器的平稳切换 走vrrp虚拟路由冗余协议
4.简述DAS、NAS、SAN等存储类型的含义。
DAS:Direct Attached Storage,直接附加存储
NAS:Network Attachmnet Storage,网络附加存储
SAN:Storage Area Network,存储区域网络

四、MySQL

1.存储引擎
MyISAM不支持事务,表级锁
InnoDB支持事务,行级锁
2.主从复制的过程
(1)MySQL从服务器开启I/O线程,向主服务器请求数据同步(获取二进制日志)
(2)MySQL主服务器开启I/O线程回应从服务器
(3)从服务器得到主的二进制日志写入中继日志
(4)从服务器开启SQL线程将日志内容执行,实现数据同步
3.主从复制的方式
基于二进制日志
基于GTID(基于事务)
4.sql优化
开启慢日志查询,查找sql语句执行时间比较长的
5.完备
为什么备份表节构:还原的时候先还原表节构然后在还原数据,这样做更加安全,直接对库进行还原有可能会丢失数据
工具用mysqldump
6.增备
为什么要增量备份:因为完备的话占用磁盘较大,那么我们可以每周一次完备,然后根据自己的数据量来做增倍,可以每天一次,如果数据量大的话每半天一次也是可以的,可以根据时间和位置做恢复,先恢复完备备份的数据,然后在根据时间或根据位置回复增倍的,如果中间有drop或者要调过某些时间也可以做到
7.日志类型以及作用
Binary log 二进制日志:二进制日志不记录如SELECT或 SHOW不修改数据的语句。运行启用了二进制日志记录的服务器会使性能稍慢。但是,二进制日志能够设置复制和还原操作的好处,通常会超过性能二进制日志所带来的性能的下降。

二进制日志三种记录格式:
	·基于语句的日志记录(--binlog-format=STATEMENT)
	·基于行的日志记录(--binlog-format=ROW)
	·混合日志记录(--binlog-format=MIXED)

Error log 错误日志:记录mysqld服务启动、运行、停止遇到的错误
General query log 通用查询日志:由于通用查询日志记录的过于详细,我们一般在调试过程中开启此日志,正常情况线上服务器是不开的,否则对服务器硬盘IO影响过大。
Slow query log 慢查询日志:慢查询日志由long_query_time执行时间超过几秒的SQL语句组成,并且至少 min_examined_row_limit需要检查行。慢查询日志可用于查找需要很长时间才能执行的查询,因此是优化的候选者。但是,检查长慢的查询日志可能是一项耗时的任务。为了简化这一过程,可以使用 mysqldumpslow命令处理慢速查询日志文件并汇总其内容。

五、Redis

1.Redis相比memcached有哪些优势?
(1) memcached所有的值均是简单的字符串,redis作为其替代者,支持更为丰富的数据类型
(2) redis的速度比memcached快很多
(3) redis可以持久化其数据
2.Redis消耗什么资源
内存
3.Redis的内存用完了会发生什么?
如果达到设置的上限,Redis的写命令会返回错误信息(但是读命令还可以正常返回。)或者你可以将Redis当缓存来使用配置淘汰机制,当Redis达到内存上限时会冲刷掉旧的内容。
4.Redis常见性能问题和解决方案?
(1) Master最好不要做任何持久化工作,如RDB内存快照和AOF日志文件
(2) 如果数据比较重要,某个Slave开启AOF备份数据,策略设置为每秒同步一次
(3) 为了主从复制的速度和连接的稳定性,Master和Slave最好在同一个局域网内
(4) 尽量避免在压力很大的主库上增加从库
(5) 主从复制不要用图状结构,用单向链表结构更为稳定,即:Master <- Slave1 <- Slave2 <- Slave3…
这样的结构方便解决单点故障问题,实现Slave对Master的替换。如果Master挂了,可以立刻启用Slave1做Master,其他不变。
5、Redis提供了哪几种持久化方式?
(1)RDB持久化方式能够在指定的时间间隔能对你的数据进行快照存储.
(2)AOF持久化方式记录每次对服务器写的操作,当服务器重启的时候会重新执行这些命令来恢复原始的数据,AOF命令以redis协议追加保存每次写的操作到文件末尾.Redis还能对AOF文件进行后台重写,使得AOF文件的体积不至于过大.
(3)如果你只希望你的数据在服务器运行的时候存在,你也可以不使用任何持久化方式.
(4)你也可以同时开启两种持久化方式, 在这种情况下, 当redis重启的时候会优先载入AOF文件来恢复原始的数据,因为在通常情况下AOF文件保存的数据集要比RDB文件保存的数据集要完整.
(5)最重要的事情是了解RDB和AOF持久化方式的不同,让我们以RDB持久化方式开始。
6.如何选择合适的持久化方式?
一般来说, 如果想达到足以媲美PostgreSQL的数据安全性, 你应该同时使用两种持久化功能。如果你非常关心你的数据, 但仍然可以承受数分钟以内的数据丢失,那么你可以只使用RDB持久化。
有很多用户都只使用AOF持久化,但并不推荐这种方式:因为定时生成RDB快照(snapshot)非常便于进行数据库备份, 并且 RDB 恢复数据集的速度也要比AOF恢复的速度要快,除此之外, 使用RDB还可以避免之前提到的AOF程序的bug。

六、ELK

1.ELK是什么?
ELK 其实并不是一款软件,而是一整套解决方案,是三个软件产品的首字母缩写
Elasticsearch:负责日志检索和储存
Logstash:负责日志的收集和分析、处理
Kibana:负责日志的可视化
这三款软件都是开源软件,通常是配合使用,而且又先后归于 Elastic.co 公司名下,故被简称为 ELK
2.ELK能做什么?
ELK组件在海量日志系统的运维中,可用于解决:
分布式日志数据集中式查询和管理
系统监控,包含系统硬件和应用各个组件的监控
故障排查
安全信息和事件管理
报表功能

3.简要概述Elasticsearch?
ElasticSearch 是一个基于 Lucene 的搜索服务器。它提供了一个分布式多用户能力的全文搜索引擎,基于 RESTful API 的 web 接口。
Elasticsearch是用Java开发的,并作为Apache许可条款下的开放源码发布,是当前流行的企业级搜索引擎。设计用于云计算中,能够达到实时搜索,稳定,可靠,快速,安装使用方便
4.elasticsearch主要特点

1.实时分析
2.分布式实时文件存储,并将每一个字段都编入索引
3.文档导向,所有的对象全部是文档
4.高可用性,易扩展,支持集群(Cluster)、分片和复制(Shards 和 Replicas)
接口友好,支持 JSON

5.ES 没有什么?
Elasticsearch 没有典型意义的事务.
Elasticsearch 是一种面向文档的数据库。
Elasticsearch 没有提供授权和认证特性(在7版本以前没有7版本之后可以认证不过用户是固定的密码可以自定义)
6.ES相关概念
Node: 装有一个 ES 服务器的节点。
Cluster: 有多个Node组成的集群
Document: 一个可被搜素的基础信息单元
Index: 拥有相似特征的文档的集合
Type: 一个索引中可以定义一种或多种类型
Filed: 是 ES 的最小单位,相当于数据的某一列
Shards: 索引的分片,每一个分片就是一个 Shard
Replicas: 索引的拷贝
7.ES与关系数据库对比
ES 与关系型数据库的对比
在 ES 中,文档归属于一种 类型 (type) ,而这些类型存在于索引 (index) 中,类比传统关系型数据库
DB -> Databases -> Tables -> Rows -> Columns
关系型 数据库 表 行 列

ES -> Indices -> Types -> Documents -> Fields
ES 索引 类型 文档 域(字段)

8.搭建ES流程安装第一台 ES 服务器

1.设置主机名称和 ip 对应关系 192.168.4.11 node1
2.解决依赖关系 openjdk1.8
3.安装软件包 elasticsearch
4.修改配置文件 elasticsearch.yml
5.启动服务
6.检查服务 netstat -lutunp (9200 9300)
curl:htttp://192.168.4.1:9200/

9.ES集群配置
只需要对配置文件做少量修改,其他配置一样
ES 集群配置
集群中的所有节点要相互能够 ping 通,要在所有集群机器上配置 /etc/hosts 中的主机名与 ip 对应关系
集群中所有机器都要安装 java 环境
cluster.name 集群名称配置要求完全一致
node.name 为当前节点标识,应配置本机的主机名
discovery 为集群节点机器,不需要全部配置
配置完成以后启动所有节点服务(有可能会有一定的延时,需要等待几十秒)

10.ES集群配置验证
curl http://192.168.4.11:9200/_cluster/health?
11.ES 常用插件
head 插件:
它展现ES集群的拓扑结构,并且可以通过它来进行索引(Index)和节点(Node)级别的操作
它提供一组针对集群的查询API,并将结果以json和表格形式返回
它提供一些快捷菜单,用以展现集群的各种状态
ES 常用插件
kopf 插件
是一个ElasticSearch的管理工具
它提供了对ES集群操作的API
bigdesk 插件
是elasticsearch的一个集群监控工具
可以通过它来查看es集群的各种状态,如:cpu、内存使用情况,索引数据、搜索情况,http连接数等
12.kibana是什么
数据可视化平台工具
特点:
灵活的分析和可视化平台
实时总结和流数据的图表
为不同的用户显示直观的界面
即时分享和嵌入的仪表板
13logstash 是什么
logstash是一个数据采集、加工处理以及传输的工具
14.logstash 特点
所有类型的数据集中处理
不同模式和格式数据的正常化
自定义日志格式的迅速扩展
为自定义数据源轻松添加插件
15.logstash 工作结构

{ 数据源 } ==>
             input {   } ==>
                              filter {   } ==>
                                             output {   } ==>
                                                                { ES }

16.logstash 里面的类型
布尔值类型: ssl_enable => true
字节类型: bytes => “1MiB”
字符串类型: name => “xkops”
数值类型: port => 22
数组: match => [“datetime”,“UNIX”]
哈希: options => {k => “v”,k2 => “v2”}
编码解码: codec => “json”
路径: file_path => “/tmp/filename”
注释: #
17.logstash 条件判断
等于: ==
不等于: !=
小于: <
大于: >
小于等于: <=
大于等于: >=
匹配正则: =~
不匹配正则: !~
logstash 条件判断
包含: in
不包含: not in
与: and
或: or
非与: nand
非或: xor
复合表达式: ()
取反符合: !()

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

来自万古的忧伤

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值