腾讯云智 C++ 一面凉经
Elasticsearch 的作用
Elasticsearch 是一个分布式搜索与分析引擎,核心价值是把文本和结构化数据建立索引后,支持高性能检索与聚合统计。它适合做查询层,比如消息搜索、日志检索、复杂条件过滤和运营分析,不适合作为强事务主库。
用户A给用户B发消息,如何做到消息转发
标准做法是先持久化再投递。A 发消息到接入层后,服务端先完成鉴权、生成消息 ID、写入存储或消息日志,再根据 B 的在线状态做路由。在线就通过长连接实时推送,离线就写离线队列,等 B 上线拉取。B 收到后回 ACK,服务端更新投递状态;如果超时未 ACK,就走重试或补偿。这样才能同时保证可靠性和可追踪性。
HTTP 做业务请求、WebSocket 做实时通信,为什么分离
HTTP 天然适合请求-响应类接口,例如登录、拉历史、改资料;WebSocket 天然适合实时双向通信,例如即时消息推送和状态通知。把两者分离后,系统可以把控制面和实时数据面独立扩容,协议治理更清晰,故障也更容易隔离,整体延迟和资源利用率更稳定。
消息量大如何保证不丢数据不重复
工程上一般采用“至少一次投递 + 消费端幂等”。不丢依赖先落盘、ACK、失败重试和多副本;不重复依赖全局唯一消息 ID 与幂等校验。即使网络抖动导致重发,只要消费侧按消息 ID 去重,就不会产生业务重复。配合死信队列和离线补拉机制,可以覆盖异常场景下的恢复。
ThreadCache 如何实现无锁申请(整体思路)
ThreadCache 的核心是“线程本地化”。每个线程维护自己的小对象空闲链表,申请时优先从本地取,这条路径不需要全局锁;只有本地不足时才批量向中央缓存申请,本地过多时再批量归还。高频分配走无锁本地路径,低频路径才触发共享结构同步,因此能显著降低锁竞争和上下文切换开销。
除了 tcmalloc,还了解哪些 malloc 方案
常见方案包括 jemalloc、ptmalloc、mimalloc。jemalloc 在并发场景和碎片控制上表现较好;ptmalloc 是 glibc 默认实现,兼容性强;mimalloc 强调低延迟和小对象性能。面试里给出方案名并说明适
剩余60%内容,订阅专栏后可继续查看/也可单篇购买
本专栏系统梳理C++方向, 大中厂高频高频面试考点 , 内容皆来自真实面试经历,从基础语法、内存管理、STL与设计模式,到操作系统与项目实战,结合真实面试题深度解析,帮助开发者高效查漏补缺,提升技术理解与面试通过率,打造扎实的C++工程能力.
查看14道真题和解析
哔哩哔哩公司福利 923人发布