度小满运维开发一面

度小满运维开发一面

本文作者:程序员小白条

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

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

相关推荐
问道飞鱼3 小时前
【服务器知识】HTTP 请求头信息及其用途详细说明
运维·服务器·nginx·http·http头信息
weixin_436525073 小时前
linux-RabbitMQ创建虚拟主机、用户、分配权限、标签
linux·运维·服务器·rabbitmq
全栈派森5 小时前
BI数据开发全攻略:数据仓库、模型搭建与指标处理
数据仓库·python·程序人生
铁手飞鹰6 小时前
从零复现论文:深度学习域适应1
linux·pytorch·python·深度学习·ubuntu·ai·迁移学习
Leo655357 小时前
JDK8 的排序、分组求和,转换为Map
java·开发语言
Asmalin9 小时前
【代码随想录day 29】 力扣 135.分发糖果
算法·leetcode·职场和发展
微笑尅乐9 小时前
多解法详解与边界处理——力扣7.整数反转
算法·leetcode·职场和发展
薰衣草23339 小时前
力扣——位运算
python·算法·leetcode
心灵宝贝9 小时前
如何在 CentOS 7 上安装 bzip2-libs-1.0.6-13.el7.x86_64.rpm 文件
linux·运维·centos