微派-一面-后端开发

NSQ 消息队列 生产者发消息是 http请求发的吗 还是TCP?

发消息有两种方式,http请求和通过tcp连接发送。java客户端nsq-j是通过tcp连接发送。curl工具是通过http请求发送。

优化了客户端,提供了故障转移和负载均衡,故障转移和负载均衡 怎么转移? 有重试吗?

在发消息之前 会先获取一个连接 故障转移就是如果当前这个连接不可用 那么使用备用的连接,负载均衡就是 每次获取连接 循环的获取下一个。

发送消息失败了 并且有连接可以用,那么会更换一个连接重试,如果获取连接的时候都失败了 没有可用的连接 就会抛异常。

你说你了解NSQ的实现,讲一下NSQ如何实现的?

Redis热点Key和大Key问题?是什么? Redis如何处理的?

MySQL宕机重启了,怎么知道哪些事务是需要回滚的哪些是需要提交的?(redo log 两阶段提交)

一个事务开启之后,进行操作就会写入redo log(prepare阶段),提交事务之后会写入bin log,然后在设置redo log(commit阶段)。 这样就算bin log 或者redo log出现错误(不能刷盘等等)。也不会影响事务的正常。因为mysql 在启动之后,恢复数据是判断事务是回滚还是提交,首先判断事务在redo log中是否commit,如果是 那么提交事务,如果不是判断是否存在对应的bin log,如果存在提交事务,如果不存在回滚事务,这样就可以保证bin log 和redo log 记录一致不会冲突。

#软件开发2023笔面经#

#软件开发2023笔面经#
全部评论
佬!
点赞 回复 分享
发布于 2023-05-20 10:33 河南
面了多久
点赞 回复 分享
发布于 2023-04-25 13:00 浙江
什么岗位
点赞 回复 分享
发布于 2023-04-25 12:45 安徽

相关推荐

春招的战役还在继续,回望这段时间马不停蹄的面试征程,我前前后后参与了10多家公司的面试,有碰壁后的失落,有意外复活的惊喜,也有拿到offer的踏实,更攒下了不少实打实的求职心得,想和同样在春招里奔波的小伙伴们好好聊聊。先说说最直观的行业感受,这次春招让我真切体会到,Java开发岗位真的是“狼多肉少”,难度和竞争压力远超预期。我重点面了转转,甚至还拿到过一次复活机会,北京、深圳的岗位都逐一尝试,可最终还是北京岗二面折戟,深圳岗一面止步。翻看官网的招聘信息就能发现,大部分技术组每个岗位仅招聘1-2个人,可每周都有大批量的求职者涌入面试,优质hc极度稀缺,想要突围难上加难。也正是因为Java赛道过于拥挤,我及时调整了方向,尝试投递Go语言开发和全栈开发岗位,打开了新的求职窗口,顺利约到了不少优质企业的面试,整体的面试通过率也远比Java岗位高,求职之路瞬间顺畅了很多,这也让我意识到,春招求职适时调整方向、灵活选择赛道,远比死磕一个饱和岗位更明智。付出总算有了回报,目前我的春招战果还算不错,已经拿到了几份offer:竞高文化Java开发岗、好未来golang语言开发岗(口头oc)、微派安卓开发岗,还有淘米游戏golang服务器开发岗等等。作为一名双非院校的求职者,能拿到这些offer,我已经倍感珍惜,也深知这份结果来之不易。其实双非选手在春招里,真的太需要天时地利人和了。学历的短板在大厂面试中很容易被无限放大,有时候明明感觉面试过程发挥得很好,和面试官交流也十分顺畅,可最后还是等来了拒信,这种落差感真的很磨人。那段时间我也陷入过严重的焦虑,刷社交平台总能看到同是双非的大神拿下大厂offer,心里既羡慕又着急,忍不住反复对比,越比越自我怀疑,甚至陷入精神内耗。但慢慢我也想通了,别人能拿到亮眼的offer,背后必然付出了远超常人的努力,这份成果是他们应得的。一味地和他人比较,参考别人的求职经历对标自己,不仅毫无意义,还会徒增烦恼、打乱自己的节奏。与其在焦虑中内耗,不如沉下心来做好自己的事,整理面试复盘、巩固技术知识点、耐心等待下一个机会,这才是最该做的。在这里也真心给正在春招的小伙伴们一个建议:可以多了解行业行情,明确求职趋势,但千万不要盲目和别人比较。每个人的基础、经历、求职节奏都不一样,走好自己的路,放平心态、保持耐心才是最重要的。春招是一场持久战,心态崩了就什么都没了,哪怕暂时没拿到满意的结果,也不要灰心。现在才三月,接下来还有四月、五月的黄金求职期,机会依旧很多。不用着急,不用焦虑,踏踏实实准备,认认真真面试,相信每一个努力的人,最终都能等到属于自己的那份满意offer。
牧羊人_xmy:和兄弟的感悟一样,传统后端Java开发太难了,现在我也在转其他方向
春招至今,你的战绩如何?
点赞 评论 收藏
分享
04-06 16:43
已编辑
北京中南海业余大学 Java
实习拷打 1:你在**实习主要做了哪些工作?2:有没有记忆比较深的方案设计案例,讲讲你是怎么设计的?3:你说的库存这块,其实就是乐观锁的概念,对吧?当初这么设计是考虑性能优化吗?4:你提到的优惠券规则引擎是什么?5:注册发券逻辑从同步改成异步后,怎么保证券的成功发放?八股6:讲一下 Java 里 Map 的实现,主要是 HashMap 的底层结构?7:HashMap 的扩容流程是怎样的?最新版本里对 rehash 过程有什么优化吗?8:讲一下 JVM 内存模型,内存里有哪几个部分?9:类加载的过程是怎样的?有几个步骤?10:Java 是怎么进行垃圾回收的?11:MySQL 索引的结构是什么?12:索引失效的场景有哪些?13:MySQL 事务是怎么实现的?14:MySQL 实现可重复读、读已提交隔离级别是怎么做到的?15:你提到了 Read View,它的作用是什么?读提交和可重复读下 Read View 的创建时机有什么区别?16:MVCC 在 InnoDB 里是怎么实现的?Read View 是怎么找到有效版本的?17:Redis 的基础数据类型有哪些?18:Redis 的 ZSET 是如何实现通过 member 快速查找分数的?(底层数据结构)19:RabbitMQ 怎么实现消息不丢失和不重复消费?AI相关20:开发中有没有使用 AI 相关工具?除了开发还做过什么?21:你提到的 Skill 和 MCP 用起来的区别是什么?项目拷打22:你做的自然语言转 SQL 的 MCP 服务,实现流程是怎样的?23:大模型生成的 SQL 直接执行吗?会不会出现一些索引问题,导致查询量很大?24:这个项目是什么时候做的?现在重新设计有哪些优化方向?手撕leecode88:两个升序的数组 a 和 b,合并到数组 a 中,保持升序,a 数组的末尾有足够的空位,长度正好可以容纳两个数组的所有元素
查看24道真题和解析
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

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