【面经】当 deepseek 遇上华为云的面试|01

🌟【友情提示】本篇面经来自粉丝投稿+智能润色,点击进入 -> 🔗互联网面经大全 围观25届校招修罗场!!每个技术细节都经过脱敏处理,请勿对号入座~

八股

🌈 面试官:

咱们先聊聊Redis吧,数据结构这块你平时用哪些比较多?

💬 小基:

最常用的是String和Hash。比如活动库存用String存,用户资料用Hash存字段。对了还有HyperLogLog,用来做UV统计省内存!持久化的话我们线上用混合模式,RDB做定时快照,AOF追加操作日志。之前遇到缓存雪崩,我们给不同业务线加随机过期时间,穿透问题用布隆过滤器先拦截非法请求。

🌈 面试官:

消息队列怎么保证消息不重复消费?我们系统遇到过凌晨批量任务重复执行的问题。

💬 小基:

上个月刚踩过这个坑!我们在生产者端给每个消息加唯一指纹,用Redis存已处理消息ID,TTL设6小时。消费者端做幂等校验,比如订单ID+操作类型组合键存DynamoDB。不过这样吞吐量会降,后来切到FIFO队列用内容哈希自动去重,但要注意5分钟窗口期不够的话得自己维护去重表。

🌈 面试官:

说说InnoDB的索引结构?为什么用B+树不用红黑树?

💬 小基:

B+树叶子节点连成链表,范围查询超快。像查18-22岁的用户,找到18后顺着指针扫就行。非聚簇索引存主键值,回表查数据时如果主键是UUID这类大字段就会慢,所以我们业务都用自增ID当主键。上次慢查询优化就是把*号改成具体字段,减少回表时的IO。

🌈 面试官:

实习项目里那个优惠券系统,怎么解决高并发发券的?

💬 小基:

当时用Redis库存扣减,Lua脚本保证原子性。但大促时发现集群分片不均,有的节点被打爆。后来改成预扣库存到本地缓存,异步批量同步到DB。最刺激的是有次脚本里的除法没转整型,导致多发券,凌晨三点用binlog回滚数据...

(手撕环节)

🌈 面试官:

给你一个数组,不修改数组且O(1)空间找重复元素,怎么写?

💬 小基:

这题有点像链表找环的思路。比如数字2出现两次,那下标2和下标4都会指向3形成环。用快慢指针遍历数组,相遇时从头开始同步遍历就能找到入口点。不过要处理0的情况,需要先判断元素值是否越界。

八股

🌈 面试官:

(在纸上画项目架构图)你这个微服务拆分为什么用八个模块?单个服务处理不行吗?

💬 小基:

(擦汗)当时用户增长突然爆发,单节点扛不住登录流量。拆认证服务单独横向扩展,用Redis分布式session。订单服务独立是因为要对接多个支付渠道,版本迭代快...

🌈 主管:

主备同步延迟大的话,业务上会有什么表现?

💬 小基:

用户刚提交订单后马上查列表可能看不到。我们业务允许短暂不一致,但金融类操作必须走主库。遇到过从库binlog积压,后来调整了sync_binlog参数,半同步模式下等至少一个从库ACK才返回成功。

#面经##华为##牛客创作赏金赛#
互联网面经合集 文章被收录于专栏

本专栏收集了互联网上的面试经验贴

全部评论

相关推荐

08-20 12:08
门头沟学院 Java
有保底啦!!!
future0210:字节是保底吗[牛泪[笑着活下去]
点赞 评论 收藏
分享
DKS233:(1)专业技能:Java8也太旧了,最少也要了解到JDK17吧,可以参考现在SpringBoot支持的Java最低版本,熟悉mysql基本理论具体指啥,是锁这种具体原理还是分库分表这些业务场景,spring这些专业词汇,大小写要写对(全篇简历都有这个问题,显得不严谨),熟悉使用框架进行业务开发就别写了,如果要写,起码要写到框架原理部分吧,比如aop,启动原理什么的,springcloud具体指哪些模块呢,写清楚,网关还是鉴权还是什么,“改造”没必要写吧,你直接说用springcloud开发的不就行了(2)项目经历:首先格式就有大问题,时间怎么能换行呢,调整一下,响应速度那个,如果指的是将部分数据从其他数据库转到redis的提升就别写了,因为这个不算难点,redis可以写写分布式这些,比如容灾怎么实现的,数据库同步怎么做的
点赞 评论 收藏
分享
评论
2
4
分享

创作者周榜

更多
牛客网
牛客网在线编程
牛客网题解
牛客企业服务