本人马上大四,现在在找运维开发的工作,投的是知乎运维开发的岗位,面试时间大约 40 分钟。以下是面试过程中问到的,自我感觉整体回答的不太好。
这个问题我没有深入研究过,回答的不太好,以下是总结的。
鸭子类型(duck type):不同的对象可以相互替代,只要他们有相同的属性或者方法
多态类型,用于动态语言
在鸭子类型中,关注的不是对象的类型本身,而是它是如何使用的。例如,在不使用鸭子类型的语言中,我们可以编写一个函数,它接受一个类型为”鸭子”的对象,并调用它的”走”和”叫”方法。在使用鸭子类型的语言中,这样的一个函数可以接受一个任意类型的对象,并调用它的”走”和”叫”方法。如果这些需要被调用的方法不存在,那么将引发一个运行时错误。任何拥有这样的正确的”走”和”叫”方法的对象都可被函数接受的这种行为引出了以上表述,这种决定类型的方式因此得名。
这个还是比较简单的。。。。
面试官问我高可用可以用哪些软件实现,我答有 keepalived 和 heartbeat 等,这两个玩意以前经常用,后来没咋研究,所以回答的一般。
keepalived 是集群管理中保证集群高可用的一个服务软件,其功能类似于heartbeat,用来防止单点故障。keepalived 起初是专为 LVS 设计的,专门用来监控集群系统中各个服务节点的状态。后来又加入了 VRRP(Virtual Router Redundancy Protocol) 功能。
VRRP 协议是用于实现路由器冗余的协议,VRRP 协议将两台或多台路由器设备虚拟成一个设备,对外提供虚拟路由器IP(一个或多个),而在路由器组内部,如果实际拥有这个对外IP的路由器如果工作正常的话就是MASTER,或者是通过算法选举产生,MASTER实现针对虚拟路由器IP的各种网络功能,如ARP请求,ICMP,以及数据的转发等;其他设备不拥有该IP,状态是BACKUP,除了接收MASTER的VRRP状态通告信息外,不执行对外的网络功能。当主机失效时,BACKUP将接管原先MASTER的网络功能。
这个知道,
nginx 相对 apache 的优点:
apache 相对nginx 的优点:
这个只答对了一部分,只是说明了两者的区别,当时忘了同步异步与阻塞和非阻塞关注的层面。
同步和异步关注的是消息通信机制 (synchronous communication/ asynchronous communication)
所谓同步,就是在发出一个调用时,在没有得到结果之前,该调用就不返回。一旦调用返回,就得到返回值了。
换句话说,就是由调用者主动等待这个调用的结果。
阻塞和非阻塞关注的是程序在等待调用结果(消息,返回值)时的状态。
阻塞调用是指调用结果返回之前,当前线程会被挂起。调用线程只有在得到结果之后才会返回。
非阻塞调用指在不能立刻得到结果之前,该调用不会阻塞当前线程。
xen 和 kvm 只是了解,所以回答的不太好,面试官也没有追问,说了下 docker 的优点
xen、kvm 是针对硬件的虚拟化,需要 hypervisor 进行管理, docker 是对操作系统层次的虚拟化
xen、kvm 是一个完整的操作系统,而 docker 中跑的是一个进程
docker 所需要的资源少,启动特别快,而且对系统资源的利用率较高
复制原理非常清楚,但是可能出现的问题,只知道由于网络或带宽原因会出现延时
复制原理:
最常见的几种问题:
由于是异步复制,且sync_binlog=0,会造成一小部分binlog没接收完导致同步报错。
延迟的原因及解决方案:
这个有点复杂,只知道索引的目的在于提高查询效率,索引的数据结构是 B+ 树,使用 B+ 树是为了减少 IO。
索引的数据结构是 B+ 树,它的设计思想是,将相关数据尽量集中在一起,以便一次读取多个数据,减少硬盘 IO。查找数据项时,首先会把磁盘块由磁盘加载到内存,此时发生一次 IO,在然后内存中用二分查找确定数据的范围。
这个比较熟悉,回答了 RAID0,RAID1,RAID5,RAID6,RAID10 各个级别的原理及配置
概念不太清除,知道是为了方便前后端交互设计的,使用 json 格式的字符串进行传递数据。
RESTful 架构是一种统一的互联网软件架构,其目的是为了统一接口,方便不同的前端设备与后端进行通信。
RESTful API 是目前比较标准的一套应用程序的 API 设计理论。
工作原理就是,客户端发送request,服务端response一个json对象
没有想出来有哪些特定的使用场景,只想到了输出文件中特定的行或删除特定的行
介绍了下框架的优点,MTV 模式的使用方法,如何写业务逻辑,对协议的封装,有自己的 CMS
Django 是 python 中目前最流行的 Web 框架,能够帮助你把程序的整体架构搭建好, 而我们所需要做的工作就是填写逻辑, 而框架能够在合适的时候调用你写的逻辑, 而不需要我们自己去调用逻辑, 让 Web 开发变的更敏捷.
用的最多的还是 6 系列,7 与 6 区别在于启动的方式,对服务的管理,其他不太了解
2024 - 快车库 - 我的知识库 重庆启连科技有限公司 渝ICP备16002641号-10
企客连连 表单助手 企服开发 榜单123