度小满运维开发一面

度小满运维开发一面

本文作者:程序员小白条

本站地址:https://xbt.xiaobaitiao.top

总体用时 20 分钟,技术栈不符合,基本是 KPI 面了。

1)单体限流是怎么做的?

  1. 明确场景:首先说明在单体应用(非分布式)中,限流是为了保护应用自身,防止被突发流量打垮。
  2. 技术实现
    • Guava RateLimiter : 这是最经典的答案。介绍其基于令牌桶算法 ,可以平滑地进行限流。例如:RateLimiter.create(10.0) 表示每秒生成10个令牌。
    • Semaphore(信号量) : 对于控制并发线程数(而非QPS)的场景,可以使用 Semaphore。它规定了同时访问某个资源的线程数量。
    • 自定义计数器 : 在时间窗口内(如1秒)用一个原子计数器(如 AtomicInteger)统计请求数,超过阈值则拒绝。注意时间窗口的滑动和重置。
  3. 落地方式 : 通常使用AOP拦截器,在Controller层或Service层的方法上通过注解进行限流。

2)介绍下常见的限流算法

  1. 计数器算法
    • 固定窗口: 将时间划分为固定窗口(如1秒),在窗口内计数,超过则限流。实现简单,但窗口临界点可能承受双倍流量。
    • 滑动窗口: 将窗口划分为更细粒度的小窗口,按时间滑动。解决了固定窗口的临界问题,是计数器算法的改进版。Redis + Lua 常用来实现分布式滑动窗口。
  2. 漏桶算法
    • 请求像水一样进入漏桶,桶以固定的速率出水(处理请求)。当桶满时,请求被丢弃或等待。
    • 特点 : 平滑输出,无法应对突发流量(因为出水速率固定)。
  3. 令牌桶算法
    • 系统以恒定速率向桶中放入令牌。请求到达时,需要从桶中获取令牌,获取成功则处理,失败则限流。
    • 特点 : 既能平滑处理,又能允许一定程度的突发流量(取决于桶容量)。Guava RateLimiter 和网关如Sentinel默认采用此算法。

3)流量告警,邮件是怎么发送的?

4)数据库和缓存的一致性策略

5)怎么解决项目跨域问题的?

6)介绍下数据库的各种索引类型

7)时序数据库了解哪里?

8)Redis 持久化策略介绍一下

9)RDB 和 AOF 各自的区别、优缺点

10)Redis 宕机后数据恢复的流程

11)RDB 的写时复制

12)反问技术栈和主要的业务

主要还是 Python + Go,需要转语言,后续算法也拒了,直接下播下播~

算法力扣的一个困难题,迷宫和体力问题。

程序员小白条的编程日记:https://xbt.xiaobaitiao.top/ (分享如何拿到腾讯实习 Offer 和多个中大厂的面试机会,大学经历、求职经历、职场工作、创作经历、生活日常、面经、技术分享、毕设项目指导 )定期更新内容,成长打怪系列,分享从大一到大四的完整面经,更新好玩的,有趣的事!看完可冲中大厂!dy同名程序员小白条,主要口述面试经历和分享我认为的实用网站,会比面经讲的详细很多,以真实面试录音为主!公粽号:程序员落叶(秋招技巧、面经、公司投递表、谈offer)

欢迎关注上方公粽号!感谢支持!一起进步,共勉!

相关推荐
Boilermaker19924 小时前
[Java 并发编程] Synchronized 锁升级
java·开发语言
沈浩(种子思维作者)4 小时前
真的能精准医疗吗?癌症能提前发现吗?
人工智能·python·网络安全·健康医疗·量子计算
Cherry的跨界思维4 小时前
28、AI测试环境搭建与全栈工具实战:从本地到云平台的完整指南
java·人工智能·vue3·ai测试·ai全栈·测试全栈·ai测试全栈
njsgcs5 小时前
ue python二次开发启动教程+ 导入fbx到指定文件夹
开发语言·python·unreal engine·ue
alonewolf_995 小时前
JDK17新特性全面解析:从语法革新到模块化革命
java·开发语言·jvm·jdk
io_T_T5 小时前
迭代器 iteration、iter 与 多线程 concurrent 交叉实践(详细)
python
一嘴一个橘子5 小时前
spring-aop 的 基础使用(啥是增强类、切点、切面)- 2
java
sheji34165 小时前
【开题答辩全过程】以 中医药文化科普系统为例,包含答辩的问题和答案
java
华研前沿标杆游学5 小时前
2026年走进洛阳格力工厂参观游学
python
Carl_奕然6 小时前
【数据挖掘】数据挖掘必会技能之:A/B测试
人工智能·python·数据挖掘·数据分析