23年面试总结

网易一面 231026

0、介绍下你自己

1、具体负责的工作内容

系统的建设与维护工作。环境搭建与维护、巡检、容量规划、CICD流水线管理、可观测指标建立、监控告警处理,用户的请求事件问题处
2、介绍一下http协议

http协议(hyper text transfer protocol),超文本传输协议。是建立在传输层协议TCP之上的应用层传输协议,简单来说就是客户端和服务端建立TCP连接,之后发送HTTP请求响应进行数据传输的一种协议规则。

超文本是什么呢?文本是一些字符串数字等文字,超文本可以是图像、音频和视频等二进制文件。http协议是一种不可靠的协议,它依托与tcp实现可靠传输。为什么说它不可靠呢,是因为它没有超时传输、文本标记、确认等机制。

3、http的无状态是什么?

http是一种无状态的协议,HTTP协议本身不会对发送过的请求和响应的通信状态进行持久化处理。

这样做的目的是为了保持HTTP协议的简单性,从而能够快速处理大量事务,提高效率。

但当用户跳转页面想要保持登录状态时,就需要另一种技术cookie和session来实现。

4、http的无连接是什么?

http的无连接是指每个连接仅处理一个请求就断开连接。

这样做可以节省传输时间,提高并发性能。

但传输效率不高,同一个用户多次请求需要建立多个TCP连接。因此1.1版本有了keep-aive特性实现长连接,即在一次TCP连接中进行多次请求。

5、几个版本的不同

http0.9:已过时,纯文本,只能发送html格式字符串;只支持GET;无状态;

http1.0:超文本;增加POST、HEAD等请求方法;增加头信息;

http1.1:默认持久连接(串行传输);请求管道化;增加缓存处理;请求头新增Host字段,用来指定服务器的域名;支持断点续传分块传输等;

http2.0:二进制分帧;多路复用;头信息压缩;服务器推送;

http3.0:使用UDP传输;

6、主流版本

http1和http2

7、http请求和响应

请求格式:请求状态行(方法+URI+协议版本)+请求首部字段+请求实体

响应格式:响应状态行(协议版本+状态码+状态码描述)+响应首部字段+响应实体

8、响应状态码

1xx:指示信息 - 表示请求已接收,继续处理。100:Continue;

2xx:成功 - 请求已被成功接收、理解。200:OK;

3xx:重定向 - 要完成请求必须进行更进一步的操作。301:Moved Permanently;302:Moved Temporarily;304:Not Modified;

4xx:客户端错误 - 请求有语法错误或请求无法实现。400:Bad request;401:Unauthorized请求未授权;403:Forbidden拒绝;404:Not Found;

5xx:服务端错误 - 服务器未能实现合法的请求。500:Internal Server Error;502:Bad gateway;503:Server Unavailable;504:Gateway Time-out

9、HTTPS(Secure)

通过SSL或TLS的组合使用,加密HTTP的通信内容。使用公开密钥加解密的方式协商出共享密钥,之后的通信使用共享密钥加密传输。

10、TCP三次握手和四次挥手

SYN、SYN+ACK、ACK

FIN、ACK、FIN+ACK、ACK

11、TCP的半连接状态是什么时候

服务端收到客户端发起SYN建立连接的请求后,进入TCP的半连接状态。

12、如何查看服务器上的半连接队列并修改长度

修改内核参数,半连接和全连接队列的长度一起改

13、如何保证tcp的可靠性

  • 面向连接,通过三次握手建立连接,四次挥手销毁连接;
  • 有状态,记录数据的传输和接收序号,在窗口内按序收发;
  • 可控制,报文校验、ACK应答、超时重传、流量控制(滑动窗口)、拥塞控制(慢启动、拥塞避免、快重传、快恢复)等;

14、TCP的bbr是什么?

是一种拥塞算法。以往大部分拥塞算法是基于丢包来作为降低传输速率的信号。而BBR则基于模型主动探测。

通过检测带宽和RTT两个指标进行拥塞控制。

  • 不考虑丢包,因为丢包并不一定是网络出现拥塞的标志了。
  • BBR依赖实时监测出来的带宽和RTT来决定拥塞窗口的大小:带宽*RTT(往返时间Round Trip Time)

15、RC和deployment的区别

确保容器应用的副本数始终保持在用户定义的副本数。

RC:基于Pod模板和replicas副本个数来管理pod。pod的标签选择器仅支持等值。

RS:类似RC,但支持集合的形式的标签选择器。

DP:通过控制RC来控制Pod,同时增加了滚动升级、回滚、暂停继续、扩缩容等操作。

16、Docker的端口暴露底层

iptables

17、iptables四表五链

表:

  • raw,追踪; – output、prerouting --/
  • mangle,修改数据包的头部信息; – all --五边形
  • nat,网络地址转换(IP、端口); – prerouting、postrouting、output – 四边形
  • filter,过滤; – input、output、filter – 倒三角

链:

  • prerouting,对数据包做路由选择前应用此链上的规则
  • postrouting,对数据包进行路由选择后应用此链上的规则
  • input,数据包中的目标地址是本地地址
  • output,从本机发出去的数据包
  • forward,转发流经本机的数据包

18、端口暴露经过了哪些表和链?

表:prerouting --> input --> output --> postrouting

https://blog.csdn.net/WuLex/article/details/130193920

16、python class 静态方法

网易二面 231030

中国电信天翼云一面 20231101

1、介绍下自己和主要的工作

2、介绍下负责系统的架构

3、网站的安全措施

WAF:web application firewall,网站应用防火墙。对网站或者app的业务流量进行恶意特征识别及防护,在对流量进行清洗和过滤后,将正常、安全的流量返回给服务器,避免网站服务器被恶意入侵导致性能异常等问题,从而保障网站的业务安全和数据安全。

通过修改网站域名解析CNAME记录到WAF提供的域名,并在WAF中配置网站域名的相关配置(证书)进行回流。

防火墙:是一种用于保护网络环境免受未经授权访问和攻击的安全设备。位于网络边界,控制流入和流出网络的数据流量。防火墙基于事先定义的安全策略,对网络流量进行检查和过滤,以阻止潜在的攻击流量进入网络内部。

区别:

  • 位置:WAF位于应用程序与外部网络之间,防火墙位于网络边界。
  • 工作方式:WAF通过分析HTTP请求和响应以及应用层协议,检测和阻止针对WEB应用程序的攻击。防火墙主要通过检查网络流量中的源和目标ip地址端口等信息,来判断是否允许网络流量通过。
  • 保护范围:WAF专注于保护web应用,防火墙则可以保护整个网络环境中的所有设备和系统。

4、awk、kubectl、uniq、sort基础命令的使用

awk [参数] [处理内容] [操作对象]

  • BEGIN{}:最开始执行
  • //:正则, ~正则匹配(包含); !~:正则匹配(不包含)
  • {}:循环体
  • END{}:最后执行

流程控制只存在循环之中。 ‘{ if(){} else if(){} else(){} }’

https://www.cnblogs.com/zhengyan6/p/16290156.html

sort,排序,-n:按数值升序排列;-r:相反的顺序;-t:排序时指定分隔符;-k:与-t合用,指定要排序的列数;

uniq,去重,-c:显示次数

wc,统计次数,-l:行数;-w:字数;-c:字节数;

5、ansible常用模块、ansible-playbook使用

ansible,基于ssh和远程主机通讯。python编写的自动化运维工具。

任务模式:ad-hoc,点对点模式,使用单个模块,支持批量执行单个命令;playbook,剧本模式,通过多个task集合完成一类功能;

常用模块:ping、shell、copy、file、fetch、cron、yum、service、user、group;

playbook由YAML语言编写。核心元素:Hosts、Tasks、Variables、Templates、Handlers;

6、主机网络出现问题后的排查思路

  • 根据网络中主机通讯情况,判断出问题的主机和区段。即是a主机,以及a-c之间的通讯;
  • 定位到异常主机后,登录主机查看:网卡是否工作、ip是否正确配置启用、网关路由策略配置、DNS配置、tracepath或traceroute探测网络中的链路与延迟、telnet检查端口连通性、netstat查看本机是否开放服务连接、iptables查看防火墙规则配置

7、如何使用mysql的binlog进行数据恢复

flush logs;生成新的binlog日志。为了使恢复操作在新的binlog中记录,不影响之前的。

mysqlbinlog --start-positon=xx --stop-position=xx /var/lib/mysql/mysql-bin.000006 | mysql -uroot -pxx; 恢复数据

https://www.cnblogs.com/YCcc/p/10825870.html

8、mysql的主从切换怎么操作

  • 主库正常,主从切换;确认主从数据状态、从库停掉复制进程并清空主从信息、从库关闭只读开启读写,转为新主库、主库设置执行新主库的复制链路,转为新备库,完成主从切换、应用流量切换至新主库。
  • 主库宕机,从库升级为主库;差异数据处理。binlog

9、MySQL自动主从切换

MHA,所有节点上安装mha,一主多从,主节点宕机后,挑选最新数据的slave升级为主,其他节点重新指向新的主。

keepalived,主从,主节点宕机后,vip漂移至slave节点,slave节点升级为新主库提供服务。

问题:如何判断主库宕机?可用性和数据一致性哪个更重要?

10、where和having的区别

  • where用于条件筛选,having用于分组后筛选;
  • where后不能跟聚合函数,having一般配合group by或者聚合函数(min,max,avg,count,sum)使用;
  • where在group by前,having在group by后;

9、mysql如何查看主从实例的延迟

show slave status;

Second_Behind_Master:0 --> 无延迟、 Null --> 主从同步已停止、大于0 --> 比主库慢

10、redis中如何查看某个key是否存在

exists key1;1存在,0不存在;

keys后可跟通配符,*所有,?单个字符,[]某个字符,keys a*

增&改:set key value; set key expire value;mset key1 value1 key2 value2 key3 value3;存在则改,不存在则加;

删:del key;del key1 key2;

查:get key;mget key1 key2;不存在返回空行;type key;查看类型

11、redis中如何查看目前一共有多少key

dbsize; (integer) 69421

info keyspace; db0:keys=69421,expires=10845,avg_ttl=570070743

12、redis的架构实现,主从+高可用

单机、主从(手动切换)、哨兵(自动切换主从)、集群(分片、扩展性)

13、rabbitmq的管道、队列如何创建,操作命令

14、rabbitmq的架构实现

趣丸科技一面

你可能感兴趣的:(面试,职场和发展)