美文网首页
40W工程师,5个经典面试坑,网友评论:一个不会

40W工程师,5个经典面试坑,网友评论:一个不会

作者: Jennifer86 | 来源:发表于2019-04-22 17:22 被阅读0次

    经历了滴滴的幸福裁员潮,又迎来了人人车硬刚劳动法,出现了苏宁管培生巨婴,伴随着网易的大面积裁员,各大企业一波未平一波又起。

    对于技术在手,说走就走的IT工程师而言,裁员不就是换个公司继续填坑吗?大家都习以为常了。为了进入更好的坑,IT工程师不断的提升技术,不断提升能力。

    小编作为一名资(diao)深(si)级工程师,总结了5个经典面试题

    一 redis分布式锁过期时间内没执行完 怎么解决?

    分布式锁超时没有执行完,是没有办法避免的,因为锁过期不会通知客户端,只能尽量不在锁内执行长任务; 从业务上解决的话,需要为锁值加版本号。删除前判断版本号;

    40W工程师,5个经典面试坑,网友评论:一个不会

    二 rocketmq 延迟消息怎么实现的?

    RocketMQ提供了延迟消息类型,简单来说就是生产者在发送消息的时候指定一个延迟时间,当达到延迟时间之后消息才能被投送到消费者。

    40W工程师,5个经典面试坑,网友评论:一个不会

    生产者将延迟消息发送到Broker,Broker区分普通消息与延迟消息

    消息如何保证不被消费者拉取到的(RocketMQ将消息以SCHEDULE_TOPIC_XXXX为topic将延时消息持久化,等到达延时消息之后再以原有的topic重新保存)

    对于延迟消息,常用方法是用时间堆来实现的消息队列保存消息事件,额外线程定时检查堆顶进行消息投放。

    三 myisam 索引数据结构是什么?

    MYISAM使用b+tree,索引文件和数据文件分离。索引文件仅保存记录所在页的指针(物理位置),通过这些地址来读取页,进而读取被索引的行。

    40W工程师,5个经典面试坑,网友评论:一个不会

    四 消息队列的使用场景

    消息队列主要用于业务异步解耦,流量请求削峰,业务通信,广播组播等事务。

    五 redis单线程为什么这么快?

    redis数据操作基于内存操作,而不是基于磁盘IO操作的,所以不需要等待磁盘IO就绪。单线程不需要出现线程切换的代价,故redis能够采用单线程。与之相对的,mysql数据操作是基于磁盘IO的,单线程是绝不可能的。至于快,内存操作本来就快的,这与单线程和多线程没有关系的。

    image.png

    欢迎评论&关注

    相关文章

      网友评论

          本文标题:40W工程师,5个经典面试坑,网友评论:一个不会

          本文链接:https://www.haomeiwen.com/subject/ludugqtx.html