微派-一面-后端开发

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 安徽

相关推荐

02-07 12:06
已编辑
华侨大学 测试开发
最近看到很多 92 的,甚至是硕士,开始往测开赛道卷,说实话有点看不懂。先把话说清楚,大厂里的测开,绝大多数时间干的还是测试的活,只是写点自动化脚本、维护测试平台、接接流水线,真正像开发一样做系统、做架构、做核心平台的测开少得可怜,基本都集中在核心提效组,而且人很少,外面进去的大概率轮不到你,我想真正干过人都清楚。很多人被洗脑了,以为测开也是开,和后端差不多,只是更简单、更轻松、还高薪。现实情况是,测开和开发的职业路径完全不一样。开发的核心是业务和系统能力,测开的核心是稳定性和覆盖率,前者是往上走,后者天花板非常明显。你可以见到很多开发转测开,但你很少见到干了几年测开还能顺利转回开发的。更现实一点说,92 的高学历如果拿来做测开,大部分时间就是在做重复性很强的杂活,这种工作对个人能力的放大效应非常弱。三年下来,你和一个双非的,甚至本科的测开差距不会太大,但你和同龄的后端、平台开发差距会非常明显。这不是努不努力的问题,是赛道问题。所谓测开简单高薪,本质上是把极少数核心测开的上限,当成了整个岗位的常态来宣传。那些工资高、技术强的测开,本身就是开发水平,只是挂了个测开的名。普通人进去,99% 做的都是项目兜底型工作,而不是你想象中的平台开发。测开不是不能做,但它绝对不是开发的平替,也不是性价比最优解。如果你是真的不想做开发,追求稳定,那测开没问题。但如果你只是觉得测开比后端容易,还能进大厂,那我劝你冷静一点,这只是在用短期安全感换长期天花板。有92的学历,如果你连测开这些重复性工作都能心甘情愿接受,那你把时间精力用在真正的开发、系统、业务深度上,回报大概率比卷测开要高得多。想清楚再下场,别被岗位名和话术带偏了,就算去个前端客户端也是随便占坑的,测开是一个坑位很少赛道,反而大面积学历下放,不用想也能知道会是什么结果,我想各位在JAVA那里已经看到了
小浪_Coding:工作只是谋生的手段 而不是相互比较和歧视
点赞 评论 收藏
分享
评论
2
14
分享

创作者周榜

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