快手(安全方向)面试

一、 项目经历

  1. 问题:请简单介绍一下你自己和你的项目。

    ◦ 回答:东北林业大学人工智能专业研究生,方向客户端开发。项目是一个IAM(身份识别与访问管理)系统,参考Casbin实现,核心解决认证(JWT实现)和授权问题。授权部分基于RBAC模型,涉及策略、角色、密钥。

  2. 问题:详细说明权限系统的设计(角色、操作、资源及其关系)。

    ◦ 回答:系统分为认证(JWT Token)和授权。项目是科研协作平台,有四种角色(指导老师、项目负责人、核心成员、一般成员)和四种权限粒度。权限通过角色关联,用户分配角色。

  3. 问题:如何支持多项目?数据量激增如何优化?

    ◦ 回答:通过分表(按项目ID)实现资源隔离。优化方法:索引优化、表结构优化 -> 分库分表(按资源类型或ID)。

  4. 问题:Redis和MySQL之间的数据同步与一致性如何保证?

    ◦ 回答:通过消息队列(Redis的Pub/Sub)进行同步。数据更新后发消息,订阅节点更新缓存。对一致性问题的理解不够深入,未给出强一致性方案。

二、 Go语言基础

  1. 问题:数组和切片的区别?

    ◦ 回答:数组长度固定,切片是动态的。切片底层结构包含指针、长度、容量。扩容规则:<256时2倍,≥256时1.25倍。扩容会分配新数组并复制数据。

  2. 问题:如何排查内存泄漏?Map的底层实现?

    ◦ 回答:提到用Go工具命令排查,但未具体说明。Map是哈希表(数组+桶+链表/红黑树),负载因子超6.5时扩容。

  3. 问题:Map是否线程安全?如何实现线程安全Map?

    ◦ 回答:非线程安全。可用sync.Map或加锁(互斥锁)实现。

  4. 问题:Go的并发控制方法?Channel类型?GMP模型?

    ◦ 回答:sync.WaitGroup, channel, context。Channel分有缓冲和无缓冲。GMP模型中,P是调度器,管理G和M。提到了工作窃取等特性。

  5. 问题:如何排查Goroutine导致的CPU占用过高?

    ◦ 回答:在Linux下用top命令查看。对底层系统调用和火焰图优化不熟悉。

三、 网络、数据库与系统设计

  1. 问题:RESTful API设计规范?HTTPS原理?

    ◦ 回答:对API设计规范不了解。HTTPS是HTTP+TLS/SSL。简述了从URL解析到页面渲染的通信过程,但TLS握手细节不清晰。

  2. 问题:MySQL索引失效场景?慢查询排查方法?

    ◦ 回答:索引失效:对索引列进行数学运算、前模糊查询、联合索引不满足最左前缀、范围查询后的索引失效等。排查:开启慢查询日志,用EXPLAIN分析SQL,或使用监控工具。

  3. 问题:介绍三级缓存(本地、Redis、MySQL)结构。

    ◦ 回答:本地缓存存最热数据(75%),Redis存温数据和需共享数据(20%),MySQL持久化及冷数据(5%)。访问顺序:本地 -> Redis -> MySQL,并回写更新。

  4. 问题:Redis分布式集群与高可用?

    ◦ 回答:提到了主从复制(读写分离)、哨兵机制(故障转移)。通信同步仍提及用消息队列,而非集群原生协议。

  5. 问题:MySQL事务隔离级别?脏读、幻读概念?

    ◦ 回答:四种级别。脏读发生在读未提交级别。对幻读的解释不准确(描述成了不可重复读)。

四、 数据结构与算法

  1. 问题:Redis ZSet为何用跳表?

    ◦ 回答:实现简单,复杂度与平衡树相近(O(log N)),支持范围查询。

  2. 问题:编程题:反转链表II(指定区间反转)。

    ◦ 回答:思路正确(找到区间,反转局部,再重新连接),但在代码实现时遇到困难,未能完整写出。面试官给出了使用虚拟头节点和双指针的提示。

五、 反向提问

  1. 问题:(你提问)岗位业务?面试反馈?
    ◦ 回答:面试官介绍业务是公司内网身份认证平台开发。建议:对项目所用组件的技术细节可以了解得更深入。

核心总结

• 优势:对项目整体架构、Go基础语法、MySQL索引、缓存基本概念有了解。

• 不足:

复制代码
◦   技术深度:对分布式数据一致性、Redis集群原理、HTTPS/TLS细节、事务隔离级别等核心原理理解不够深入。

◦   原理掌握:部分回答停留在表面,未能阐述清楚底层机制(如GMP调度细节、幻读与MVCC)。

◦   实践经验:缺乏高性能、高并发场景下的排查和优化经验(如CPU/内存问题排查)。

◦   编码能力:算法题思路清晰,但临场编码实现和调试能力有待提高。
相关推荐
iAkuya33 分钟前
(leetcode)力扣100 62N皇后问题 (普通回溯(使用set存储),位运算回溯)
算法·leetcode·职场和发展
m0_466525291 小时前
绿盟科技风云卫AI安全能力平台成果重磅发布
大数据·数据库·人工智能·安全
晚霞的不甘1 小时前
守护智能边界:CANN 的 AI 安全机制深度解析
人工智能·安全·语言模型·自然语言处理·前端框架
枷锁—sha1 小时前
【SRC】SQL注入快速判定与应对策略(一)
网络·数据库·sql·安全·网络安全·系统安全
数字护盾(和中)1 小时前
信创生态 + 国密算法 筑牢数字安全韧性根基
安全
devmoon2 小时前
在 Polkadot 上部署独立区块链Paseo 测试网实战部署指南
开发语言·安全·区块链·polkadot·erc-20·测试网·独立链
成茂峰3 小时前
软考高级·系统架构设计师 | 四、信息技术安全知识
安全·信息安全·系统架构·架构设计师
向哆哆3 小时前
CANN生态安全保障:cann-security-module技术解读
人工智能·安全·cann
Serene_Dream3 小时前
JVM 并发 GC - 三色标记
jvm·面试
wuli_滔滔4 小时前
CANN安全机制源码探秘 仓库中的权限校验与数据加密实现
安全·cann