腾讯云智一面面经

  1. 我直接问你一些我们这边技术栈可能用得到的基础问题,看你这边的掌握情况。
  2. 你简历上的两个项目都是自己学习练手做的项目是吧?
    1. 是的。
  3. 你认为哪个项目对你的知识掌握的提升是比较大的,或者说哪个项目你比较能讲一些?
    1. 商城项目(微服务)。
  4. 扩展讲一下这个项目里面用到了哪些东西。
    1. 主要用到了微服务相关的一些知识点,用 JWT 实现了登录时的鉴权,用 docker 进行了集群化部署,用 nacos 作为配置中心,实现了服务的注册和发现。
  5. 你提到了微服务,微服务的优势在哪里,和常规服务有什么不同,为什么要用微服务呢?
    1. 微服务是将多个小的服务,形成一定的联系,按照它的业务功能进行拆分,可以在一定程度上实现解耦合。
  6. 微服务之间是通过什么进行通信的?
    1. 通过 feign 实现通信。
  7. 走的是什么协议?
    1. 走的是 http 协议。
  8. 为什么要用 http ?用 tcp 可以嘛?http 和 tcp 有是什么区别?
    1. http 是超文本传输协议,在分布式用的比较多,基于请求-响应模型。
    2. http 和 tcp 所在的层不同,tcp 属于传输层协议,主要是为应用层提供一些可靠的数据传输的服务,http 是应用层协议,是基于 tcp 之上的,在一定程度上依赖 tcp 。
    3. 相较之下,http 和 tcp 的功能和应用场景不同。功能上来说,tcp 提供的是可控传输,http 提供的是请求-响应,场景上来说,tcp 对数据的可靠性要求较高,http 常用于和 web 相关的一些场景,比如说客户端向服务端发请求,以及网页 API 之类的。
  9. 简单介绍一下 ES 是用来存储什么数据,是怎么存的?
    1. ES 主要是为了提高查询效率,搜索时可能只输入一部分关键词,通过 ES 实现通过部分关键词,查找有哪些商品是具有这个关键词的,查找方案上来说,主要是用的分词器,用 ES 的话查找效率能高一些。
  10. Redis 用来做什么的?
    1. Redis 主要是用于缓存,主要用用于缓存热点商品。在二次三次查询时,可以直接从 Redis 中获取数据,可以降低数据库的压力,提供读取的速度。
  11. Redis 中如何解决一致性的问题?
    1. 通过一些同步方案解决。旁路缓存、双删缓存等方案实现数据同步。
  12. Redis 中的数据最终是要保证和谁的数据一致?谁来控制?
    1. 跟 MySQL 中的数据保证一致。
    2. 用的比较多的策略是延迟双删策略,是binlog监听控制的。
  13. Redis 和 MySQL 的数据同步是怎么实现的?
    1. 比如现在有一个数据更新了,先是把 Redis 中的缓存删掉,再写删数据库,然后再删一遍缓存,防止在此期间内进行数据查询时读到脏数据。
  14. 在删除时会出现击穿问题嘛?
    1. 有可能会发生击穿现象。
    2. 击穿现象是指,某一个缓存突然过期了,正好在过期的这个时间点,有大量用户在查询这个数据,就可能会发生击穿。
    3. 击穿的解决方案有两个,一个是给热点数据在高访问期临时设置永不过期,另一个是自动续期。
  15. MySQL 有哪些存储引擎?
    1. MySQL 中存储引擎有 Innodb 和 myisam ,还有一些我没太了解过,主要用的就是这两个。
  16. Innodb 中有哪些索引?
    1. 有聚簇索引和非聚簇索引,有主键索引、普通索引、空间索引、前缀索引。
  17. 一个表设计索引的时候要遵循什么原则?
    1. 有一个最左匹配原则,最左匹配原则的前提条件是使用了联合索引。
    2. 最左匹配原则大概是,如果索引是联合索引,在查询时,查询条件必须包括索引中的第一个列的信息,然后才是第二个列第三个列。
  18. 有没有什么情况是不适合使用索引的?
    1. 读少写多,经常修改的。
    2. 某一列有很多重复值,比如性别,只有男和女或者0和1,有大量重复元素,就不适合作为索引。
  19. 如果我设计一张表的时候,我让表里面的每一个字段都创建一个索引,这样做好不好?有没有什么问题?
    1. 不好,可能会造成资源浪费,索引也需要占用空间,导致存储所需开销较大。
    2. 查询优化器,索引过多会导致查询优化器决策时间变长,可能反而会降低效率。
    3. 如果表经常有写操作,在更新数据时,对索引数据也需要进行更新,降低了写操作的性能。
  20. 怎么判断一个链表是否有环?
    1. 快慢指针。一个指针每次走一步,另一个指针每次走两步,如果会相遇,就有环。时间复杂度是O(n)。
    2. 哈希表。遍历链表时,把每个节点存在哈希表里,如果某个节点在哈希表中已存在,就有环。时间复杂度是O(n)。
  21. 有 n 个数字,怎么计算出最大的 k 个数字?
    1. 最简单的方案就是直接排序,取出前 k 个数。
    2. 用小根堆。用一个大小为 k 的小根堆,维护最大的 k 个数字。当堆里面的元素数量小于 k 时,直接加到堆里面,堆内元素的数量达到 k 个时,将加入元素和堆内元素比大小,如果加入元素更大,就替换,循环,最后保留的就是最大的 k 个数。
  22. TCP 里面滑动窗口是用来做什么的?
    1. 流量控制。类似于生产者消费者,防止两边的效率不一致,导致有一方一直等待。
  23. 通过什么实现的流量控制?
    1. 作为接收方的这一边会告诉发送方,自己有一个滑动窗口,并且告诉他滑动窗口的大小,发送方会根据窗口大小来控制自己发送数据的数量,防止发送方发的太快,接收方跟不上。
  24. 各个微服务之间使用 http 协议进行通信的,为什么不用 tcp 呢?用 http 找到一个服务和用 tcp 找到一个服务有什么区别嘛?
    1. 当时做的时候,认为 http 更简单容易上手一些。
    2. tcp 没有请求-响应模型,可能有一部分内容需要自己进行处理,http 就不需要进行这些处理。
  25. 我没有问题了,你有什么想要了解的嘛?
    1. 本次面试中哪块答的不太好,需要巩固学习一下的?
    2. 后续流程?
#腾讯云智一面面经##腾讯云智研发2025实习生招聘#
全部评论
写的太详细了,祝好运
4 回复 分享
发布于 04-17 17:04 天津
什么时候投递的呀
1 回复 分享
发布于 04-17 16:07 陕西
好详细呀,佬投的什么岗
点赞 回复 分享
发布于 04-20 14:25 陕西
mark
点赞 回复 分享
发布于 04-20 11:32 湖北
佬可以说一下timeline吗
点赞 回复 分享
发布于 04-19 15:05 北京
uu,目前怎么样了
点赞 回复 分享
发布于 04-18 16:25 广西
讲讲商城项目
点赞 回复 分享
发布于 04-18 15:11 天津
m
点赞 回复 分享
发布于 04-18 14:58 黑龙江
佬投的哪个部门
点赞 回复 分享
发布于 04-17 22:53 上海
接好运
点赞 回复 分享
发布于 04-17 17:06 北京

相关推荐

04-18 16:24
已编辑
门头沟学院 Java
点赞 评论 收藏
分享
评论
30
96
分享

创作者周榜

更多
牛客网
牛客企业服务