面试题总结

文章目录

  • 第一阶段:
  • 网络
    • 1、osi七层模型、tcp\ip 五层模型
    • 2、三次握手四次挥手
    • 3、交换机路由器工作原理
    • 4、vlan的作用
    • 5、icmp协议
  • Linux
    • 1、cpu、内存、io、磁盘容量、网络流量、load average
    • 2、lvm逻辑卷如何创建
    • 3、raid磁盘阵列
    • 4、开机引导过程
    • 5、软连接硬链接
    • 6、查找文件命令
    • 7、yum仓库
    • 8、文本三剑客grep、awk、sed
    • 9、linux的性能安全优化
  • shell脚本
    • 1、预定义变量
    • 2、输出全局变量
    • 3、如何创建函数
    • 4、 shell实现nginx日志自动切割
  • 防火墙
    • 1、四表五链
    • 2、iptables命令
    • 3、firewalld九大区域
  • 第二阶段
    • 1、nginx的优化
    • 2、nginx负载均衡器的类型
    • 3、nginx如何实现会话保持
    • 4、nginx四层代理和七层代理的区别
    • 5、tomcat的几个端口
    • 6、mysql sql语句
    • 7、MySQL索引
    • 8、MySQL事务、隔离级别
    • 9、什么是死锁,产生的原因、解决方法、如何避免
    • 10、MySQL存储引擎
    • 11、Keepalived
    • 12、脑裂
    • 13、状态响应码
    • 14、MySQL的存储过程
    • 15、MySQL高可用
    • 16、MySQL主从复制有延迟
    • 17、MySQL双1设置
    • 18、MySQL配置优化
    • 19、如何定位并优化慢查询SQL?
    • 20、Redis 为什么读写速度那么快
    • 21、redis的数据结构
    • 22、redis 中rdb和aof的区别
    • 23、redis主从复制(哨兵、集群)
    • 24、什么是 CDN
    • 25、rsync怎么实现远程同步、清空文件
    • 26、elk怎么工作的、组件
    • 27、es集群部署
    • 28、Logstash模块
    • 29、es创建删除索引
    • 30、kafka作用特点、组件
    • 31、zabbix组件、如何自定义监控状态
    • 32、zookeeper的选举机制
    • 33、redis的优化
    • 34、 ceph的存储过程
    • 35、缓存击穿,穿透,雪崩
      • 缓存击穿:
      • 缓存雪崩
      • 缓存穿透
    • 36、MHA 部署过程:
    • 37、tomcat的优化
  • 三、
    • 1、k8s的工作流程
    • 2、k8s核心组件
      • master组件
      • node组件
    • 3、相比VLAN技术,VXLAN技术具有以下的优势:
    • 4、flannel UDP 模式的工作原理
    • 5、flannel vxlan 模式工作原理

第一阶段:

网络

1、osi七层模型、tcp\ip 五层模型

应用层 :直接面向用户,为用户的应用进程提供服务,处理应用进程之间的通信。

表示层 :确定数据的表示形式,完成数据格式之间的转换,从而使收发双方都能理
解。

会话层 :负责管理远程用户或进程之间的通信,为表示层提供建立、维护和结束会话连接的功能。

传输层 :定义传输数据的端口号,将数据以数据段的形式完成端到端的传输。

网络层 :通过逻辑寻址,实现不同网络之间的路径选择,将源和目的ip地址以数据包的形式实现数据从源地址到目的地址的传输。通过ip地址实现点到点的通信。

数据链路层 :建立相邻结点之间的数据链路,进行硬件地址寻址、差错校验等功能,将比特封装成数据帧的形式进行文件的传输。通过物理(MAC)地址来实现两个相邻网络之间的通信。

物理层 :将数据以比特流的形式进行传输,物理层将这些二进制数字组成的比特流转换成电信号在网络中传输。

应用层—传输层—网络层—数据链路层—物理层

2、三次握手四次挥手

三次握手:

  1. 客户端向服务器发送一个SYN(同步)报文,其中包含一个随机的初始序列号(ISN)。
  2. 服务器收到SYN报文后,向客户端发送一个SYN-ACK(同步-确认)报文,其中确认号为客户端的ISN加1,并且服务器也随机生成一个ISN。
  3. 客户端收到服务器的SYN-ACK报文后,向服务器发送一个ACK(确认)报文,其中确认号为服务器的ISN加1,同时客户端还确认了服务器的ISN。

四次挥手:

  1. 当客户端需要关闭连接时,发送一个FIN(结束)报文,表示数据发送完成。
  2. 服务器收到FIN后,发送一个ACK报文作为确认。
  3. 服务器继续发送数据,当数据发送完成后,向客户端发送一个FIN报文。
  4. 客户端收到服务器的FIN后,发送一个ACK报文作为确认,并进入TIME_WAIT状态。在TIME_WAIT状态持续2倍的报文最大生存时间(MSL)后,关闭连接。

这样,通过三次握手建立连接和四次挥手关闭连接可以确保数据的可靠传输和连接的正常关闭。

为什么要进行三次握手呢?

因为三次握手的过程可以最快的进行客户端和服务器之间的互联互通,减少资源消耗。

3、交换机路由器工作原理

交换机:交换机的工作原理可以理解为是交换机通过MAC地址表来实现数据的传输

1、初始状态:交换机刚开机时MAC地址表没有任何记录。
2、MAC地址学习:源主机通过交换机发送数据帧给目标主机,交换机学习数据帧中的源MAC和对应的接口标识,并记录到MAC地址表中。
3、广播未知数据帧:如果交换机的HMAc地址表没有目的MAc地址所对应的接口记录,则会进行广播泛洪。
4、接收方回应:只有拥有对应目的MAC地址的主机才会进行回复响应。
5、交换机实现单播通信:交换机会从目的主机回复的消息中学习到MAc地址和对应的接口标识,并记录到MAC地址表中,之后两台之间即可通过交换机。MAC地址表的记录实现单播通信
注:MAC 地址表的默认老化时间是300s

路由器:通过路由表转发

4、vlan的作用

vlan是一种虚拟局域网技术,它将一个物理局域网划分成多个逻辑上的虚拟局域网。VLAN的作用主要有以下几点:

  1. 提供逻辑隔离:VLAN可以将网络设备按照逻辑上的需求进行划分,使得不同VLAN上的设备之间无法直接通信,从而增强网络的安全性。
  2. 简化网络管理:通过VLAN,管理员可以根据不同的需求将设备逻辑上分组,方便管理和配置。例如,可以将同一部门或同一功能的设备划分到同一个VLAN,更好地进行网络资源的管理。
  3. 减少广播域:传统的广播会在整个物理局域网中传播,这会导致网络拥塞和冲突。而VLAN将不同的设备划分到不同的虚拟局域网中,可以减少广播域的范围,降低了广播引起的网络负载。
  4. 支持虚拟机迁移:在虚拟化环境中,VLAN可以帮助实现虚拟机的灵活迁移。通过划分不同的VLAN,可以使得虚拟机在不同的物理服务器之间迁移时,网络配置更加简单和灵活。

5、icmp协议

linux:ping traceroute

windows:tracert、

Linux

1、cpu、内存、io、磁盘容量、网络流量、load average

**free **查看交换空间个内存状态
**cat /etc/redhat-release ; cat /etc/*release ; cat /proc/version **查看当前系统版本
**uname -r **查看内核版本
**cat /proc/cpuinfo ; yum -y install sysstat, sar ; **查看cpu信息
**vmstat **查看系统内存,交换空间,io,cpu信息
**iostat **查看磁盘io性能
**top **动态查看系统当前进程信息CPU负载信息,内存信息,交换空间信息
**yum -y install dstat , dstat **获取占用cpu的进程
**uptime ;w **显示系统运行时间,登录用户 和 CPU 负载情况
**cat /proc/meminfo **查看内存
**top --> H **查看线程
**ps -T **查看线程

2、lvm逻辑卷如何创建

在这里插入图片描述

3、raid磁盘阵列

raid级别硬盘数量要求利用率有无冗余能力读写性能
raid0NN单个硬盘的n倍
raid1N(为偶数)N/2有,允许一个设备故障读性能提升,写没有提升
raid5N>=3(N-1) /N有,允许一个设备故障需要多写一份纠删码,所以写性能相对raid 0低一些
raid6N>=4(N-2) /N有,允许两个设备故障需要多写两份纠删码,所以写性能相对raid 5更低一些
raid10N>=4 (偶数)N/2有,允许不同组中各坏一个读性能可提升N倍,写性能提升N/2倍

4、开机引导过程

1 、 开机自检(BIOS):检测出第一个能够引导系统的设备,比如硬盘或者光驱。

2 、MBR 引导:运行放在MBR扇区里的启动GRUB引导程序

3 、[GRUB])菜单:GRUB引导程序通过读取GRUB配置文件/boot/grub2/grub.cfg,来获取内核和镜像文件系统的设置以及路径位置。

4 、加载Linux内核:把内核和镜像文件系统加载到内存中

5 、init 进程初始化:加载硬件驱动程序,以及初始化进程,内核把init进程加载到内存中运行

5、软连接硬链接

软连接:ln -s 源文件 链接文件

硬链接:ln 源文件 链接文件

6、查找文件命令

find、locate、whereis、which

find:

-a:and 必须满足两个条件才显示
-o:or 只要满足一个条件就显示
-name:按照文件名查找文件
-iname:按照文件名查找文件(忽略大小写)
-type:根据文件类型进行搜索
-perm:按照文件权限来查找文件
-user 按照文件属主来查找文件。
-group 按照文件所属的组来查找文件。
-fprint 文件名:将匹配的文件输出到文件。
-newer file1 ! newer file2 查找更改时间比文件file1新但比文件file2旧的文件

7、yum仓库

8、文本三剑客grep、awk、sed

grep:

选项作用
-i查找时忽略大小写
-v反向查找(后面的查找的条件,是除了这个限制的信息,其余都显示)
-n显示行号
-r递归过滤文件夹中的所有文件
-A后面跟数字n +匹配的关键字,会显示关键字的后面n行
-B后面跟数字n +匹配的关键字,会显示关键字的前面n行
-C后面跟数字n +匹配的关键字,会显示关键字的前后n行
-e多条件查询(逻辑or或关系

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.hqwc.cn/news/53067.html

如若内容造成侵权/违法违规/事实不符,请联系编程知识网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

在windows下安装ruby使用gem

在windows下安装ruby使用gem 1.下载安装ruby环境2.使用gem3.gem换源 1.下载安装ruby环境 ruby下载地址 选择合适的版本进行下载和安装: 在安装的时候,请勾选Add Ruby executables to your PATH这个选项,添加环境变量: 安装Ruby成…

【css】nth-child选择器实现表格的斑马纹效果

nth-child() 选择器可以实现为所有偶数&#xff08;或奇数&#xff09;的表格行添加css样式&#xff0c;even&#xff1a;偶数&#xff0c;odd&#xff1a;奇数。 代码&#xff1a; <style> table {border-collapse: collapse;width: 100%; }th, td {text-align: cente…

安全测试国家标准解读——并发程序安全

本系列文章主要围绕《GB/T 38674—2020 信息安全技术 应用软件安全编程指南》进行讲解&#xff0c;该标准是2020年4月28日&#xff0c;由国家市场监督管理总局、国家标准化管理委员会发布&#xff0c;2020年11月01日开始实施。我们对该标准中一些常见的漏洞进行了梳理&#xff…

D. Professor Higashikata(并查集)

题目链接&#xff1a;https://codeforces.com/contest/1847/problem/D 思路:对于同一个位置&#xff0c;后出现的是无意义的&#xff0c;所以只需要找到每个位置第一次出现的次序&#xff0c;暴力写是的&#xff0c;可以转化为区间覆盖模型&#xff0c;这是并查集的一个经典应…

CI/CD持续集成持续发布(jenkins)

1.背景 在实际开发中&#xff0c;我们经常要一边开发一边测试&#xff0c;当然这里说的测试并不是程序员对自己代码的单元测试&#xff0c;而是同组程序员将代码提交后&#xff0c;由测试人员测试&#xff1b; 或者前后端分离后&#xff0c;经常会修改接口&#xff0c;然后重新…

三、JVM-如何判断对象已死问题

内存模型以及如何判定对象已死问题 体验与验证 2.4.5.1 使用visualvm visualgc插件下载链接 &#xff1a;https://visualvm.github.io/pluginscenters.html 选择对应JDK版本链接—>Tools—>Visual GC 若上述链接找不到合适的&#xff0c;大家也可以自己在网上下载对应…

【Spring Cloud 六】Hystrix熔断

这里写目录标题 系列文章目录背景一、Hystrix是什么服务雪崩服务容错的相关概念熔断器降级超时控制限流 二、会什么要有Hystrix三、如何使用Hystrix进行熔断处理整体项目代码服务提供者pom文件yml配置文件启动类controller 服务消费者pom文件yml配置文件启动类feignhystrixcont…

IDEA开启并配置services窗口

前言&#xff1a; 一般一个spring cloud项目中大大小小存在几个十几个module编写具体的微服务项目。此时&#xff0c;如果要调试测需要依次启动各个项目比较麻烦。 方法一&#xff1a; 默认第一次打开项目的时候&#xff0c;idea会提示是否增加这个选项卡&#xff0c;如果你没…

服务器中了malox勒索病毒后怎么办怎么解决,malox勒索病毒解密数据恢复

服务器遭受Malox勒索病毒攻击后&#xff0c;快速解密并恢复数据至关重要&#xff0c;以便减少更大的经济损失。近期&#xff0c;新的一波malox勒索病毒正在肆虐&#xff0c;我们收到很多企业的求助&#xff0c;企业的服务器数据库遭到了malox勒索病毒攻击&#xff0c;导致系统内…

java:JUnit单元测试

背景 一般软件测试分为白盒测试和黑盒测试 黑盒测试&#xff1a;就是现在一般测试人员的工作点点点&#xff0c;只要功能正常就行白盒测试&#xff1a;需要关注代码的具体执行过程&#xff0c;是需要写代码的 JUnit 框架是进行白盒测试使用的。 不使用单元测试框架 没有单…

C++基础

目录 在Ubuntu 下编写CC简介C环境设置编写一个简单的C程序 C基础C的新特性C的输入输出方式C之命名空间namespaceC面向对象类和对象构造函数与析构函数this 指针 继承重载函数重载运算符重载 多态数据封装数据抽象接口&#xff08;抽象类&#xff09; 在Ubuntu 下编写C 在Ubunt…

android studio 实用插件推荐

本文字数&#xff1a;&#xff1a;2352字 预计阅读时间&#xff1a;8分钟 背景 现在做安卓开发的同学基本都是用 Android Studio 了吧&#xff0c;它具有强大的开放性&#xff0c;可以让用户根据自己的需求开发或使用一些插件辅助自己搬砖&#xff0c;当然开发插件我们可能还没…