当前位置: 首页 > ds >正文

面试技术问题总结一

MySQL的几种锁机制

一、从锁的粒度角度划分

表级锁

        机制:它是对整张表进行锁定的一种锁。当一个事务对表执行写操作时,会获取写锁,在写锁持有期间,其他事务无法对该表进行读写操作;而当事务执行读操作时,会获取读锁,读锁之间是共享的,多个事务可以同时对表加读锁。        

行级锁

        机制:行级锁仅对操作的行进行锁定。它能最大程度地支持并发处理。行级锁又可细分为共享锁和排他锁。共享锁允许多个事务同时读取同一行数据;排他锁则会阻止其他事务对该行数据进行读写操作。

页级锁

        机制:页级锁的锁定粒度介于表级锁和行级锁之间,它锁定的是数据页

二、从锁的模式角度划分

共享锁(S 锁)

        机制:也被称为读锁。如果事务 T 对数据对象 A 加上共享锁,那么事务 T 可以读取 A,但不能修改 A。同时,其他事务只能对 A 加共享锁,而不能加排他锁,直到事务 T 释放 A 上的共享锁。

排他锁(X 锁)

        机制:又称写锁。若事务 T 对数据对象 A 加上排他锁,那么事务 T 既可以读取 A,也可以修改 A。在事务 T 释放 A 上的排他锁之前,其他事务不能对 A 加任何类型的锁。 意向锁 机制:这是一种表级别的锁,用于表示某个事务正在锁定某一行,或者将要对某一行加锁。

意向锁分为意向共享锁(IS 锁)和意向排他锁(IX 锁)        

        意向锁的主要作用是提高表级锁的判断效率

        应用:当一个事务想要获取表的共享锁时,必须先获取该表的意向共享锁;想要获取表的排他锁时,则必须先获取表的意向排他锁。

说一下websocket和 http的区别

1、连接方式

        HTTP:是无状态的请求-响应协议。客户端向服务器发送请求,服务器处理请求后返回响应,连接在请求响应完成后就会关闭。每次通信都需要重新建立连接,例如在浏览网页时,浏览器向服务器请求 HTML、CSS、JavaScript 等资源,服务器返回相应内容,之后连接断开。

        WebSocket:是一种持久连接协议。在客户端和服务器通过 HTTP 协议完成握手后,会建立起一条全双工的通信通道,连接会一直保持,直到其中一方主动关闭。这就好比在客户端和服务器之间建立了一座桥梁,双方可以随时通过这座桥梁进行数据传输。

2、通信方式

        HTTP:是单向的半双工通信,通常是客户端主动发起请求,服务器被动响应,服务器不能主动向客户端发送数据,除非客户端再次发起请求。例如在电商网站上查询商品信息,需要用户点击搜索按钮发起请求,服务器才会返回商品列表。

        WebSocket:支持全双工通信,客户端和服务器可以在任意时刻相互发送数据。比如在实时聊天应用中,客户端和服务器可以同时发送和接收消息,无需等待对方的请求。

3、数据传输格式

        HTTP:数据传输格式多样,常见的有JSON、XML、HTML等。一般来说,HTTP 请求和响应会包含请求头和请求体,请求头包含了请求的元信息,如请求方法、请求的资源路径、客户端信息等,请求体则包含了具体的数据内容。

        WebSocket:数据传输格式更加灵活,可以是文本数据,也可以是二进制数据。它在传输数据时会有自己的帧协议,将数据封装成顺进行传输,并且可以根据需要选择不同的操作码来表示数据的类型。

4、性能开销

        HTTP:由于每次请求都需要建立和断开连接,会带来一定的开销,尤其是在频繁请求的场景下,如实时数据更新应用,会消耗大量的网络资源和服务器资源。而且为了保持会话状态,可能需要使用Cookie、Session等机制,进一步增加了开销

        WebSocket:建立连接后是持久的,避免了频繁建立和断开连接的开销。在数据传输过程中,由于不需要像HTTP 那样携带大量的请求头信息,所以传输效率更高,更适合对实时性要求高、数据传输频繁的场景。

5、应用场景

        HTTP:适用于对实时性要求不高的场景,如静态网页浏览、文件下载、表单提交等。在这些场景中,客户端只需要在需要时向服务器请求数据,服务器返回响应即可。

        WebSocket:常用于实时性要求较高的场景,如在线聊天、实时数据监控、多人游戏等。在这些场景中,需要客户端和服务器之间能够实时地交换数据,以保证用户体验。

什么是HTTPS?HTTPS如何保证安全?

        HTTPS(HyperText Transfer Protocol Secure,超文本传输安全协议)是在 HTTP 基础上加入了加密层(SSL/TLS 协议)的安全版本,目的是解决 HTTP 的安全隐患,保证数据传输的机密性、完整性和真实性。简单来说,HTTPS = HTTP + SSL/TLS,它通过 SSL/TLS 协议对传输的数据进行加密,让第三方无法窃听或篡改,同时验证服务器的身份,防止客户端被欺骗。

HTTP(HyperText Transfer Protocol,超文本传输协议)是互联网上应用最广泛的一种网络协议,用于客户端(如浏览器)和服务器之间的通信,主要作用是传输超文本(如网页、图片、视频等)。

HTTP 的安全隐患
由于数据明文传输,在传输过程中可能被第三方(如黑客、网络运营商)窃听、篡改或伪造,例如:

  • 窃听:获取用户的账号密码、支付信息等敏感数据。
  • 篡改:修改网页内容(如替换广告、植入恶意代码)。
  • 伪造:冒充服务器向客户端发送虚假信息(如钓鱼网站)。

 HTTPS 的安全机制主要依赖于 SSL/TLS 协议 和 数字证书,具体实现情况如下:

1、身份验证:借助数字证书确认服务器身份,客户端会验证证书的颁发机构、域名匹配度和有效期等;

2、加密传输:采用 “非对称加密 + 对称加密” 结合的方式,非对称加密用于传输对称密钥,对称加密用于传输实际数据;

3、完整性校验:通过生成 “消息认证码(MAC)”,客户端比对接收数据的 MAC 与服务器发送的 MAC,判断数据是否被篡改。

HTTPS 通过 SSL/TLS 协议的加密机制保证数据传输的机密性和完整性,通过数字证书的身份验证机制确保通信双方的真实性,从而解决了 HTTP 明文传输的安全隐患。如今,HTTPS 已成为主流网站(尤其是涉及支付、登录的场景)的标配,浏览器会通过地址栏的 “锁” 图标提示用户当前连接是否使用 HTTPS 加密。

咱们用大白话来理解就是:

HTTP 就像寄明信片,内容是明文的,谁都能看,还可能被人改内容、冒名发,不太安全。

HTTPS 则是寄加密的快递,它在 HTTP 基础上多加了层保护(SSL/TLS)。

它怎么保证安全呢?靠两样:

一是 “数字证书”,相当于服务器的身份证,由权威机构发的,能证明这服务器是真的,不是骗子假装的。浏览器会检查这证书是不是真的、没过期、和网站对得上。

二是加密传输,像寄快递前把东西锁起来。先通过非对称加密(类似用公钥锁箱子,只有服务器的私钥能打开)商量好一把 “对称密钥”,之后传输的所有数据都用这把钥匙加密,别人就算截到了也打不开,改了也能发现。

简单说,HTTP 是裸奔,HTTPS 是穿了防护衣,让信息在网上跑的时候,别人偷不走、改不了,也骗不了你。

OSPF和BGP的区别

OSPF(Open Shortest Path First,开放式最短路径优先)和 BGP(Border Gateway Protocol,边界网关协议)是互联网中两种重要的路由协议,但它们的设计目标、应用场景和工作原理有显著区别。以下从多个方面详细对比两者的差异:

一、协议类型与工作范围

  • OSPF:属于内部网关协议(IGP),仅在一个自治系统(AS)内部运行,用于管理 AS 内部的路由信息。例如,企业内网、校园网或运营商的单个 AS 内部,通常用 OSPF 计算最优路径。

  • BGP【需满足设备支持】:属于外部网关协议(EGP),用于不同自治系统(AS)之间交换路由信息。例如,当数据需要从一个运营商的网络传递到另一个运营商的网络时,BGP 负责在 AS 之间选择路径。

二、路由计算依据

  • OSPF:基于链路状态算法,通过 “最短路径优先(SPF)” 算法计算路由。

    • 每个路由器会向全网广播自己的链路状态(如接口带宽、开销等),形成统一的 “链路状态数据库”。
    • 以自身为根,使用 SPF 算法生成最短路径树,优先选择开销最小的路径(开销通常与带宽相关,带宽越高开销越小)。
  • BGP:基于路径向量算法,不计算 “最短路径”,而是根据路由属性,选择最优路径。

    • 路由属性包括 AS 路径长度(AS_PATH)、下一跳(NEXT_HOP)、本地优先级(LOCAL_PREF)等,管理员可通过配置属性控制路由选择(例如优先选择 AS 路径短的路由)。
    • 核心目标是避免 AS 之间的路由环路,并确保大规模网络的稳定性。

三、应用场景

  • OSPF

    • 适用于小规模到中大规模的单一 AS 内部,例如企业网络、数据中心内部或运营商的某个区域网络。
    • 优势是收敛速度快(链路状态变化时能快速更新路由),适合对实时性要求高的场景(如视频会议、在线游戏)。
  • BGP

    • 适用于跨 AS 的大规模网络,是互联网的 “核心路由协议”,负责全球运营商之间的路由互联。
    • 支持大规模路由表(可处理数十万条路由),且允许管理员通过策略灵活控制路由(例如限制某些 AS 的流量),适合对稳定性和可控性要求高的场景。

四、路由更新方式

  • OSPF

    • 采用触发更新 + 定期更新:链路状态变化时立即广播更新(触发更新),同时每 30 分钟发送一次完整的链路状态通告(LSA)进行确认(定期更新)。
    • 更新范围限于 AS 内部,且仅传递变化的链路状态,而非完整路由表,带宽开销较小。
  • BGP

    • 采用增量更新:仅当路由信息发生变化时(如新增、删除或属性修改),才发送更新消息,且只传递变化的路由条目。
    • 初始建立连接时会交换完整路由表,但后续更新仅传递差异,适合大规模网络减少带宽消耗。

五、路由环路处理

  • OSPF:由于运行在单一 AS 内部,通过链路状态算法和层次化设计(如划分区域 Area)避免环路:每个区域内的路由器只维护本区域的链路状态,区域间通过骨干区域(Area 0)转发,天然避免环路。

  • BGP:跨 AS 场景中,通过AS_PATH 属性避免环路:每条路由都会携带经过的 AS 列表,若收到的路由中包含本地 AS 号,则拒绝接收该路由,从而防止环路。

对比表格

对比维度OSPFBGP
协议类型内部网关协议(IGP)外部网关协议(EGP)
工作范围单一 AS 内部跨 AS 之间
算法基础链路状态算法(SPF)路径向量算法
路由选择依据链路开销(最短路径)路由属性(如 AS_PATH、优先级)
路由表规模较小(AS 内部路由)极大(全球互联网路由)
收敛速度慢(强调稳定性)
典型应用企业内网、数据中心内部互联网骨干网、运营商互联
环路处理基于区域划分避免基于 AS_PATH 属性避免

keepalived的工作原理

keepalived 是一个基于 VRRP(虚拟路由)协议来实现 LVS 服务高可用方案,可以解决静态路由出现的单点故障问题。

工作原理:在一个 LVS 服务器里面,它通常有主服务器和备用服务器,就是我们常说的 master 和 backup 这两种角色的服务器,对外服务时会提供给一个虚拟的 IP 也就是我们前面所提及到的 VRRP ,然后 master 会发送我们的 VRRP 的通告信息给我们的备用服务器,当 backup 接收不到我们的 VRRP 信息以及主服务器异常的时候,那么优先级最高的这个 backup 会接管虚拟IP成为新的 master。

工作原理:通过 VRRP 协议来选举出一个 master 主节点和多个 backup 从节点,那么主节点负责分配这个流量同时会给下面的 backup节点发送 VRRP 协议加密和通告信息,当下面的 backup 收不到通告信息了就会认为 master 节点是不可用的,那么优先级最高的这个 backup 节点就会成为新的 master,它就负责接下来的分发流量的工作了

两种方式一样,看自己更喜欢哪种回答

LVM逻辑卷

是 Linux 系统中用于管理磁盘存储的一种技术,它通过将物理磁盘抽象为逻辑卷,提供了比传统分区更灵活的磁盘管理方式。

物理卷(PV)与卷组(VG)
• PV 是 VG 的物理基础:一个 VG 由多个 PV 组成,PV 可以是整块物理磁盘(如/dev/sdb)或分区(如/dev/sdb1)。
• VG 是 PV 的逻辑容器:通过vgcreate myvg /dev/sdb /dev/sdc将多个 PV 合并为一个 VG,形成统一的存储池。
• 动态扩展:可随时通过vgextend添加新 PV,或通过vgreduce移除 PV(需先迁移数据)。
物理扩展块(PE)与逻辑扩展块(LE)
PE 是物理存储的最小单位:每个 PV 被划分为大小相等的 PE(默认 4MB),PE 编号全局唯一(如/dev/sdb:0表示 sdb 磁盘的第一个 PE)。
LE 是逻辑存储的最小单位:LV 被划分为与 PE 大小相同的 LE,通过映射表与物理 PE 一一对应。
• 映射关系:当创建 LV 时,系统从 VG 中分配空闲 PE,并建立 LE 到 PE 的映射(如LV_LE0 → PV1_PE10)。

 

LVM 通过 分层抽象 + 映射机制 实现灵活性:

  • 物理层:将磁盘转化为可管理的 PV 和 PE。
  • 逻辑层:通过 VG 整合 PV 资源,建立 LE→PE 映射表。
  • 应用层:LV 提供统一接口,支持动态调整和快照。

常用命令 

功能物理卷(PV)卷组(VG)逻辑卷(LV)
创建pvcreatevgcreatelvcreate
查看信息pvdisplaypvsvgdisplayvgslvdisplaylvs
删除pvremovevgremovelvremove
扩展-vgextendlvextend
缩小-vgreducelvreduce
物理卷移动数据pvmove--

docker 的相关问题

什么是docker?

        Docker 是一种轻量级的容器化技术,通过将应用及其依赖打包成独立的容器,实现 “一次构建,到处运行” 的目标。它解决了软件开发和部署过程中的环境一致性问题,极大提高了开发效率和系统可靠性。

什么是docker镜像?

        Docker 镜像是 Docker 容器的基础,它是一个只读的文件系统包,包含了运行应用程序所需的所有内容:代码、运行时环境、库、环境变量和配置文件。Docker 镜像使应用能够在任何环境中一致运行,解决了 “在我机器上能运行” 的问题。

什么是docker容器?

        Docker 容器是 Docker 镜像的运行实例,是一种轻量级、可移植的独立运行环境。它封装了应用程序及其所有依赖项,确保应用在不同环境中一致运行。容器通过 Linux 内核的隔离技术实现进程级隔离,相比传统虚拟机具有更高的资源利用率和更快的启动速度。

docker容器有几种状态?

buffer 和 cache 的区别

buffer(缓冲区) 和 cache(缓存) 都是内存中的临时存储区域,用来提升系统效率,但作用场景完全不同

Buffer 为 “写” 服务更多,Cache 为 “读” 服务更多

Buffer(缓冲区):像 “临时中转站”,专门解决设备速度不匹配的问题。比如 CPU 写数据到磁盘时,先放缓冲区,CPU 不用等磁盘写完就可以干别的,缓冲区再慢慢传给磁盘。(如写磁盘时的临时存储)。

比如:你给远方的朋友寄快递,不会亲自跑过去送(太慢),而是先把快递放到小区快递柜(缓冲区),快递员定期来取走派送。
这里,你(快设备,比如 CPU)→ 快递柜(缓冲区)→ 快递员(慢设备,比如磁盘 / 网络),缓冲区让你不用等快递员,提高效率。

Cache(缓存):像 “常用文件柜”,把你经常用的数据存起来。比如反复看同一个文件,第一次从磁盘读,之后直接从缓存拿,不用再麻烦磁盘,速度更快。(如反复读取的文件内容)。

比如:你每天早上都要喝牛奶,不会每次都去楼下超市(慢),而是提前买几盒放家里冰箱(缓存),早上直接拿,不用跑超市。
这里,超市(慢设备,比如磁盘)→ 冰箱(缓存)→ 你(快访问,比如 CPU / 用户),缓存让常用数据离访问者更近。

http://www.xdnf.cn/news/15206.html

相关文章:

  • 定位模拟的详细步骤
  • 医院多部门协同构建知识库-指南库-预测模型三维网络路径研究
  • 深入剖析C++ RPC框架原理:有栈协程与分布式系统设计
  • 服务器内核级故障排查
  • 脑科学圈| 利用眼动追踪评估演讲情境下焦虑障碍儿童的注视行为
  • 用 LangChain4j 从零实现 RAG:基于 PDF 文档的智能问答系统
  • 1.2.3_1 OSI参考模型
  • Java设计模式之行为型模式(观察者模式)介绍与说明
  • 【Linux系统】冯诺依曼体系结构 | 初识操作系统
  • 易基因:血浆ChIP-seq的cfDNA组蛋白修饰分析揭示晚期前列腺癌表型和临床异质性|Cancer Res/IF16.6
  • 记一次Android Studio编译报错:Execution failed for task ‘:app:compileDebugAidl‘
  • 中国农作物收获面积空间栅格(1KM分辨率)数据(含16种作物:玉米、小麦、水稻、大豆等)
  • chrony时间同步
  • searxng 对接openweb-UI实现大模型通过国内搜索引擎在线搜索
  • 通过 .NET Aspire 使用本地 AI 模型
  • 从 SEO 到 GEO:2025 电商搜索新战场|产品 SERP 的 AI 征服指南
  • Docker的/var/lib/docker/目录占用100%的处理方法
  • esp8266-01S实现PPM波形
  • Linux指令与权限
  • SQL138 连续两次作答试卷的最大时间窗
  • 【C语言】学习过程教训与经验杂谈:思想准备、知识回顾(六)
  • Flask 入门教程:用 Python 快速搭建你的第一个 Web 应用
  • kotlin中集合的用法
  • nmap扫描指定网段中指定开放端口的主机(IP,mac地址)
  • wps怎样正常显示毫秒时间
  • Spring Boot 与 Docker 的完美结合:容器化你的应用
  • 深入理解区块链 | 去中心化架构与密码学保障
  • html的outline: none;
  • 杰赛S65_中星微ZX296716免拆刷机教程解决网络错误和时钟问题
  • 智能体决策机制深度剖析:ReAct、Plan-and-Execute与自适应策略