度小满运维开发一面

度小满运维开发一面

本文作者:程序员小白条

本站地址: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)

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

相关推荐
kobe_OKOK_4 小时前
__getattr__和__getattribute__如何用
python
海鸥-w4 小时前
什么是AOP
java
全栈弄潮儿5 小时前
Python实战第2期: 变量与数据类型
后端·python·agent
长沙三为智能科技5 小时前
家政小程序门店运营模块设计:会员、下单、派单、结算四段链路的落地拆解
python·小程序·内容运营
Cc.Y5 小时前
Java零基础入门:可变字符串与包装类:StringBuilder、StringBuffer 与 通讯录管理系统实战
java·开发语言·python
启观川5 小时前
数据结构与算法 -第 3 章 常用算法-动态规划
数据结构·笔记·python·算法
程序员-Benothing5 小时前
Vim编辑器从入门到精通:模式、快捷键、配置、插件
linux·运维·服务器
码爸5 小时前
排序算法介绍
python·算法·排序算法
paopaokaka_luck5 小时前
基于springboot+vue的智慧家政管理系统(AI问答、 WebSocket实时沟通、ECharts运营分析、订单规则与服务追踪)
java·javascript·spring boot·数据分析·echarts·mybatis
sm_926787055 小时前
RFID 标签打印的技术实现要点与二次开发实践
java·大数据·前端·c++·编辑器