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

Java面试-微服务(业务问题)

一、限流面试题:

  • 限流原因:应对并发量大和防止用户恶意刷接口,如抢券业务会有大流量冲击,需进行限流。
  • 常见限流方式:单体项目可通过Tomcat设置最大连接数限流;微服务项目常用Nginx和网关限流,也可自定义拦截器。
  • Nginx限流:提供控制速率和并发连接数两种方式,控制速率采用漏斗算法,水滴代表请求,漏斗以固定速率流出请求;控制并发连接数可限制单个IP和整个服务的连接数。
  • 网关限流:使用令牌桶算法,通过局部过滤器request rate limit实现,可按IP或路径限流,设置令牌生成速度和令牌桶总容量。
  • 回答思路:介绍业务场景和QPS,说明Nginx和网关的限流方式及算法,也可介绍令牌桶和漏桶算法的区别。

二、分布式系统理论面试题:

  • CAP定理:分布式系统有一致性、可用性和分区容错性三个指标,三者不能同时满足,只能根据业务选择CP或AP。
  • BASE理论:是对CAP的解决思路,包括基本可用、软状态和最终一致性,可用于解决分布式事务问题。
  • 回答思路:解释CAP和BASE的含义,举例说明如何应用于分布式事务。
  • 分布式事务
    • 解决方案:主流框架是阿里的Seata,提供XA、AT和TCC三种模式;也可用MQ解决。
    • Seata模式:XA模式采用CP模型,保证强一致性,但性能差;AT模式采用AP模型,性能好,通过undo log记录数据;TCC模式也采用AP模型,需手动编码实现。
    • MQ解决方案:异步性能高,但实时性差,适用于对数据强一致性要求不高的场景。
    • 回答思路:根据业务选择合适的解决方案,向面试官陈述。

三、接口幂等性面试题:

  • 幂等概念:多次调用方法或接口不改变业务状态,结果与单次调用一致,如下单操作。
  • 需考虑幂等的请求:POST请求新增操作和PUT请求按增量更新操作需考虑幂等。
  • 解决方案:数据库唯一索引可解决新增问题;TOKEN加Redis可解决新增和修改问题,通过生成唯一TOKEN并存储在Redis中验证;分布式锁也可解决新增和修改问题,但性能较低。
  • 回答思路:解释幂等含义,根据业务选择合适的解决方案。

四、分布式任务调度面试题:

  • XXL-Job优势:解决集群任务重复执行问题,任务定义灵活,可进行失败重试和统计,支持大数据量任务分片执行。
  • 路由策略:常见的有轮询、故障转移和分片广播等,可根据需求选择。
  • 任务执行失败解决方法:设置路由策略为故障转移,设置失败重试次数,查看日志并设置邮件告警。
  • 大数据量任务执行方法:采用分片广播路由策略,在代码中获取分片总数和当前分片,按取模方式分摊任务。
  • 回答思路:介绍XXL-Job优势,说明常见路由策略、任务失败解决方法和大数据量任务执行方法。
http://www.dtcms.com/a/361061.html

相关文章:

  • C#在物联网GPS经纬度转换为百度地图地址
  • 再见 K8s!3款开源的云原生部署工具
  • NetCoreKevin-DDD-微服务-WebApi-AI智能体、AISK集成、MCP协议服务、SignalR、Quartz 框架-15-认证与安全
  • DevExpress WinForms中文教程:Data Grid - 过滤编辑器
  • Spring事务管理策略对比与性能优化实践指南
  • k8s--etcd
  • CTFshow系列——命令执行web73-77(完结篇)
  • LeetCode Hot 100 Python (41~50)
  • .NET 微服务日志系统:Serilog + Loki + Grafana 实践指南
  • 安卓11 12系统修改定制化_____常用的几种修改固件 实现指定 “运行内存” 显示
  • 【论文精读】基于YOLOv3算法的高速公路火灾检测
  • ios 配置了代理且使用 chls.pro/ssl 下载不了证书,无法弹出下载证书的提示问题
  • 高防IP防护效果评估全攻略:从指标解读到实战测试
  • python填充多边形,获取所有内部点
  • JVM:内存区域划分、类加载的过程、垃圾回收机制
  • 电影票api接口对接步骤
  • Minecraft(我的世界)服务器信息查询免费API接口详解
  • Java PDF转多种图片格式:技术实践与性能优化
  • Flutter 本地持久化存储:Hive 与 SharedPreferences 实战对比
  • [吾爱出品] PDF文件加密解密工作,附带源码。
  • vercel上线资源无法加载
  • 上海泗博MQT-805 Modbus转IOT的通信网关
  • Linux arm cache 入门
  • 【K8s】整体认识K8s之监控与升级/ETCD的备份和恢复/kustomization/CRD
  • MySQL DBA请注意 不要被Sleep会话蒙蔽了双眼
  • Python云原生与Serverless架构:2025年的开发新范式
  • 005 从会议全貌到模型本质:会议介绍与语言模型概述的深度融合
  • DevOps篇之通过GitLab CI 流水线实现k8s集群中helm应用发布
  • 深入解析 PyTorch 核心类:从张量到深度学习模型
  • 秋招笔记-8.29