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

【后端开发面试题】每日 3 题(十二)

✍个人博客:Pandaconda-CSDN博客
📣专栏地址:https://blog.csdn.net/newin2020/category_12903849.html
📚专栏简介:在这个专栏中,我将会分享后端开发面试中常见的面试题给大家,每天的题目都是独立且随机的,之前的面试题不会影响接下来的学习~
❤️如果有收获的话,欢迎点赞👍收藏📁,您的支持就是我创作的最大动力💪

题目 1: 什么是事务?在数据库中如何保证事务的 ACID 特性?

事务是指一组操作的集合,这些操作要么全部成功执行,要么全部失败回滚,从而保证数据的一致性。事务具有以下四个特性(ACID):

  1. 原子性 (Atomicity)
    事务是一个不可分割的整体,所有操作必须全部完成,否则全部回滚。例如,银行转账操作中,扣款和存款必须同时成功或失败。

  2. 一致性 (Consistency)
    事务执行前后,数据库的状态必须保持一致。例如,转账前后账户总金额不变。

  3. 隔离性 (Isolation)
    并发事务之间互不干扰,每个事务都像是独立运行的。数据库通过隔离级别(如读未提交、读已提交、可重复读、串行化)来控制并发行为。

  4. 持久性 (Durability)
    一旦事务提交,其结果将永久保存到数据库中,即使系统发生故障也不会丢失。

实现方式:

  • 使用日志记录(如 Redo Log 和 Undo Log)来支持崩溃恢复。
  • 通过锁机制(如行锁、表锁)实现隔离性。
  • 数据库引擎(如 MySQL 的 InnoDB)提供了事务管理功能。

题目 2: 如何设计一个高并发的秒杀系统?请简要说明关键点。

秒杀系统需要处理短时间内大量用户的请求,因此设计时需要考虑高并发、低延迟和数据一致性。以下是关键点:

  1. 限流与降级

    • 使用限流算法(如令牌桶、漏桶)限制请求速率,防止系统过载。
    • 对非核心功能进行降级处理,确保核心功能可用。
  2. 缓存优化

    • 将商品库存信息存储在内存缓存(如 Redis)中,减少数据库压力。
    • 使用分布式锁(如 Redis 的 SETNX)控制库存扣减,避免超卖。
  3. 异步处理

    • 将订单生成、支付等耗时操作放入消息队列(如 Kafka、RabbitMQ),异步处理以提高响应速度。
  4. 分库分表

    • 对用户和订单数据进行分库分表,提升数据库的读写性能。
  5. 前端优化

    • 静态资源使用 CDN 加速。
    • 秒杀按钮通过后端动态控制显示,避免提前暴露接口。
  6. 监控与扩容

    • 实时监控系统性能指标(如 QPS、响应时间)。
    • 根据流量动态扩容服务器资源。

题目 3: 什么是负载均衡?常见的负载均衡算法有哪些?

负载均衡是一种将客户端请求分发到多个服务器的技术,用于提高系统的可用性和扩展性。它通常由硬件设备(如 F5)或软件工具(如 Nginx、HAProxy)实现。

常见的负载均衡算法:

  1. 轮询 (Round Robin)
    按顺序将请求分配给服务器,适合服务器性能相近的场景。

  2. 加权轮询 (Weighted Round Robin)
    根据服务器的权重分配请求,权重高的服务器处理更多请求。

  3. 最少连接 (Least Connections)
    将请求分配给当前连接数最少的服务器,适合处理时间不均的场景。

  4. 哈希算法 (Hashing)
    根据请求的特征(如 IP 地址、URL)计算哈希值,将请求固定分配到某台服务器,常用于会话保持。

  5. 随机分配 (Random)
    随机选择一台服务器处理请求,适合服务器性能相近的场景。

应用场景:

  • 在 Web 应用中,使用负载均衡分发用户请求到多个应用服务器。
  • 在微服务架构中,使用负载均衡分发服务调用请求。
  • 在数据库集群中,使用负载均衡分发查询请求。

相关文章:

  • 用 Qt 动画制作炫酷的界面效果:属性动画教程
  • SSM基础专项复习4——Maven项目管理工具(1)
  • 小记一下Zookeeper配置中心的部分原理
  • 使用服务器如何DNS呢
  • 【eNSP实战】基本ACL实现网络安全
  • 前端怎么测网速?
  • Python数据类型进阶——详解
  • 麒麟v10 ARM64架构系统升级mysql数据库从mysql-5.7.27到mysql-8.4.4图文教程
  • (vue)elementUi中el-upload上传附件之后 点击附件可下载
  • 拥抱AI未来:Hugging Face平台使用指南与实战技巧
  • 八叉树地图的原理与实现
  • 360安全软件拦截鼠标键盘模拟操作的解决方法
  • 青年公寓服务平台的设计与实现(代码+数据库+LW)
  • Linux下用多进程在GPU上跑Pytorch模型问题
  • 大模型在原发性急性闭角型青光眼预测及治疗方案制定中的应用研究报告
  • 字母金字塔
  • 深度学习核心技术深度解析
  • 【HarmonyOS NEXT】实现文字环绕动态文本效果
  • LeetCode455☞分发饼干
  • 第1关:整数对
  • 做团购网站多少钱/百度推广的四种收费形式
  • 全国生猪价格今日猪价行情表查询/短视频seo代理
  • 最新中国企业500强名单/seo搜索引擎优化技术
  • 网站开发文档总结/web网址
  • 重庆 网站设计/百度免费推广平台
  • 做二手房产网站多少钱/如何做推广最有效果