蓝湖一面复盘

12月21日 蓝湖一面

面试体验:可以说是我的第一次面试,面试官一直在引导我,听录音发现自己说话磕磕盼盼的,问那个缓存一致性问题,我感觉就像被逼入死角的杰瑞,不知道说什么.最后的算法题,面试官提示我是二分,没做出来.

技术不足:无法把自己的项目说清楚

  1. 自我介绍
  2. 挑一个你最有价值的项目讲一下,展开讲一下,有几个模块
  3. 你实现的状态机解决了一个什么问题(这里我没有说清楚,讲了状态机记录请求index去重,这是非常次要的功能了,可以讲线性一致性,ReadIndex,randomRead,syncRead,存储引擎,快照)
  4. 请求后发先至问题,会不会导致前一个请求被屏蔽(在我的实现中一个客户端一次只能请求一次,或者说是上一个请求有回复了才能执行下一个)
  5. 怎么解决这个问题(这时候我已经乱了,说了个对请求排序,然后扯吧扯吧,/(ㄒoㄒ)/~~,应该说不能够同时发,或者用建立个client去发)
  6. raft共识层是怎么做的呢?(主从选举,日志复制....)
  7. 如果中间有节点更新错误了呢?(拜占庭问题??这里我反问了一句什么样的错误,面试官想说的是节点写入内存或者写入硬盘失败了,我没有想过这个问题,在我认知中错误只有节点失联,关机,如果出现写入不成功,只能不断的重试,这时候状态机的锁会被一直占用,raft还能运行但是状态机凝固)
  8. 重启后节点数据消失怎么解决.(raft持久化....)
  9. 机房断电了,多个节点关机,多个节点数据不一致,主节点应该怎么处理?(节点重启,根据之前持久化的信息恢复)
  10. 使用了存储引擎是什么?(Go map)
  11. map是怎么实现的kv映射?
  12. key是如何被映射到这些桶的?(计算hash值,根据 哈希后B个位 定位哈希槽,比较tophash)
  13. 数据量很大,溢出桶很多,定位时间很长,怎么解决?(这里我以为要换存储引擎,其实面试官想问扩容机制)
  14. 扩容机制
  15. 讲一下JWT令牌登录(这里我答得更乱了,cookie是客户端技术 ,session是服务端技术,token是可存在cookie中的也可存在body中,如果你要实现一些特殊功能,如黑名单,私密数据需要存在redis中,每一次访问,都要检测比照一次)
  16. 黑名单,私密数据实在什么时候被写入到redis中的?
  17. mysql中的私密数据被修改,redis中的数据变成了脏数据(缓存一致性问题,我回答,在修改私密数据的同时,修改redis中的缓存)
  18. 做业务和做框架的不是同一个人,写业务的人不知道去修改缓存,如何去解耦呢?(不知道怎么弄,缓存一致性问题不会)
  19. struct和interface讲一下区别
  20. 函数的入参定义成struct和定义成interface的区别
  21. 空struct和空interface的区别和应用场景(空结构体更多的利用无大小的特点,例如 channel 不需要知道消息是什么,只需要知道有消息来了,例如map实现set,只要key不需要val, 空接口更多的是承载,go1.18之前没有泛型,很多函数的参数类型是interface{},在函数内部去类型转换)
  22. defer的用法?( 先把返回值复制到returnPointer 在按照栈的顺序执行defer的内容 )
  23. defer中对返回值修改,在函数外能拿到这个修改吗?(1.有名返回值 2.引用类型或指针 )
  24. 算法题

问题 1.所有数字出现两次,一个数字出现一次(位运算,全部异或)

问题2 所有数字出现两次,两个数字出现一次(位运算,全部异或,得到一个p,用这个p的任意一位1 去与运算 按照01分为两组 每组再去异或)问题

问题3 所有数字出现三次,三个数字出现一次(哈希map计数)位运算

问题4 哈希计数的区别,两者的优缺点

算法题 一个无规则数组,找到其中的极小数,指比相邻的数小,两端的数可以是极小数(方法一 遍历 方法二 二分,当一个数比右边的数大于或等于,那么这个数的右边的一定有极小值)

反问环节:

1.能给一些学习的建议吗? (多考虑一些实际的东西,第二道算法题没做出来,催得紧,感觉挂了,不想反问了)

#你的秋招进展怎么样了##我的求职思考##golang面经#
全部评论
你这是几年的面试
点赞 回复 分享
发布于 2024-03-11 20:20 湖北
问这么难
点赞 回复 分享
发布于 2023-03-03 13:34 广东
面的是go的后端吗?
点赞 回复 分享
发布于 2023-02-28 10:43 陕西
好卷
点赞 回复 分享
发布于 2023-02-19 00:42 吉林

相关推荐

不愿透露姓名的神秘牛友
06-21 11:33
昨天是学校最后一场招聘会,鼠鼠去参加了,全场只有一个招聘java的岗位,上来先做一份笔试题,做完后他拿张纸对答案,然后开始问简历上的问题,深圳小厂,6-8k(题目如下),后面还有两轮面试。然后我就在招聘现场逛呀逛,看到有公司招聘电商运营,给的比上年的小厂还多,鼠鼠就去了解了下,然后hr跟鼠鼠要了份简历,虽然我的简历上面全是求职Java开发相关的内容,但是hr还是鼓励我说没关系,她帮我把简历给老板看看,下周一会给我通知。招聘会结束后鼠鼠想了一段时间,也和朋友聊了聊,发现我可能是不太适合这个方向,然后就跟爸爸说回家了给我发条微信,我有些话想跟他说说。晚上爸爸到家了,跟我发了条微信,我立马跑出图书馆跟他打起了电话,这个通话长达一个小时,主要是跟爸爸坦白说我不想找这行了,是你的儿子太没用了,想试试其他行业。然后爸爸也跟我说了很多,说他从来没有希望我毕业后就赚大钱的想法,找不到就回家去,回家了再慢慢找,实在找不到就跟他干(帮别人装修房子,个体户),他也知道工作不好找,让我不要那么焦虑,然后就是聊一些家常琐事。对于后面的求职者呢我有点建议想提一下,就是如果招实习的时间或者秋招开始,而你的简历又很差的情况下,不要说等做好项目填充完简历之后再投,那样就太晚了,建议先把熟悉的项目写上简历,然后边投边面边完善,求职是一个人进步的过程,本来就比别人慢,等到一切都准备好后再投岂不是黄花菜都凉了。时间够的话还是建议敲一遍代码,因为那样能让你加深一下对项目的理解,上面那些说法只是针对时间不够的情况。当然,这些建议可能没啥用,因为我只是一个loser,这些全是建立在我理想的情况下,有没有用还需其他人现身说法。上篇帖子没想到学校被人认了出来,为了不丢脸只能匿名处理了。
KPLACE:找研发类或技术类,主要还是要1.多投 2.多做准备,很多方面都要做准备 3.要有心理准备,投累了就休息一两天,再继续,要相信自己能找到
投递58到家等公司10个岗位
点赞 评论 收藏
分享
评论
6
2
分享

创作者周榜

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