美团优选一面面经

1.为什么离职

2.流水线模块设计 每个job具体是什么 各个job直接有没有前面运行完需要将结果给后面一个的情况(他理解成了大数据处理平台 )用容器化还是普通的

3.用过countDownLantch CycleBarrier吗 synchronized用在哪些场景下

CountDownLatch能够使一个线程在等待另外一些线程完成各自工作之后,再继续执行。
使用一个计数器进行实现,计数器初始值就是线程的数量。当每个被计数的线程完成任务后,计数器值减一,当计数器的值为0时,表示所有线程都已经完成了任务,然后在CountDownLatch上等待的线程就可以恢复执行(调用await的线程)。

CountDownLatch计数器不能被重置,如果业务上需要一个可以重置计数次数的版本,可以考虑使用CycliBarrier。

栅栏与闭锁的关键区别在于,所有的线程必须同时到达栅栏位置,才能继续执行。闭锁用于等待事件(所有线程完成任务),而栅栏用于等待其他线程(所有线程达到栅栏)。CyclicBarrier可以使一定数量的线程反复地在栅栏位置处汇集。当线程到达栅栏位置时将调用await方法,这个方法将阻塞直到所有线程都到达栅栏位置。如果所有线程都到达栅栏位置,那么栅栏将打开,此时所有的线程都将被释放,而栅栏将被重置以便下次使用。

4.mysql事务隔离级别 都会有怎样的问题 可重复读情况下怎么解决幻读 说一下mvcc 行记录里面的事务id是什么时候存进去的 

5.用过唯一索引吗 唯一索引的逻辑删除问题怎么解决 就是加入记录的某一列为唯一索引列 有一个记录已经被逻辑删除了 但是再插入唯一索引列值相同的记录 会提示重复 怎么解决?

将逻辑删除位和原来要唯一索引的那一列建为联合索引,逻辑删除位不是存0/1,而是存id,这样del_flag为0代表未删除反之代表已删除

(那如果有三条记录id都是001 先存一个再删 再存一个再删 存第二条删除时候不会重复吗?没太弄懂

code 001 del_flag 001

code 001 del_flag 001

code 002 del_flag 0)

感觉还是下文这个用删除时间做del_flag的感觉好一些,只需要考虑高并发情况下的冲突问题

数据库逻辑删除搭配唯一索引问题及解决方案_csdn 删除唯一索引-CSDN博客

6.mysql深分页问题

7.分库分表做过吗 比如一个用户的订单分散在多张表里面 怎么查

8.用什么优化手段 索引

9.对MQ的了解 kafka怎么保证消费端不重复消费

10.HDFS等大数据组件的了解程度 namenode里存了什么

11.系统qps是多少 如果要设计监控服务的指标 你觉得有哪些指标需要被监控(cpu占用率 jvm各部分占用比例 qps这些) 怎么确定自己的qps是多少

12.算法题:链表重复节点只保留一个

13.开发过程中都有哪些角色参与 遇到问题怎么办

14.开发与测试环境不隔离吗 线上环境

你可能感兴趣的:(面试)