shopee-新加坡-社招-java-视频1面
Base新加坡,4.30面完,感觉还可以,希望不要有惊吓。
收到recruitment day的邀请,马上找牛客的小伙伴内推,当天马上收到HR约面试
HR phone interview - 4.27
常规问题:
- tell me about yourself
- why leave your last job
- is there any other job offer
- why do you want to come to shopee
- will you relocate to singapore
- do you have other family members
- 如果有家人也能帮家人办理签证
HR是直接电话过来的,不是中国人,所以要全英交流。现在HR的自我介绍不想以前那么死板了,会更新聊天一样引导着说,一点一点问,慢慢了解的形式,感觉很舒服。
Tech video interview - 4.30
- 面试官先介绍了自己,然后让我简单介绍一下自己
- 算法题 : 1. Array A represents persons infected by covid-19, nested array B represents mutual contacts for a group of people (size of inner array is guaranteed to be 2), return array C which contains all persons that might have been infected. For example, if A=[2, 4], B=[[2, 5], [7, 5], [1, 3]], return C=[5, 7]
- 先用B建双向图,然后A作为start node, 进行bfs
- 问项目
- 项目中有用到kafka,展开问partition和consumer group的关系,这个我不太确定,面试官就一步一步引导,举例,我就根据工作经验去推断
- 项目中有用到storm,就问storm从kafka拿数据,如果storm挂了,怎么确保消费可达与避免重复消费
- 确保消费可达是消费者消费完进行数据落地,然后对kafka进行确认
- 避免重复消费是通过biz_id去重
- 不太确定,也是通过经验推断
- 项目中有用到mysql主从同步,读写分离,问主从同步可能存在什么问题
- 答:主从同步有延迟,可能读到旧数据
- 主从同步用于多读场景,如果写的并发量高怎么扩展
- 多主多从架构,根据业务需求路由流量
- 多个主节点共享从节点吗
- 肯定不是
- 分布式事务如何保证数据一致性
- 我的方法比较老套:两阶段提交,补偿性事务...
- mysql如何解决幻读
- 间隙锁,临键锁
场景题:A->200->B, B->300->C,ABC之间转账,在两个事务下,如何防止出现B的余额幻读 - select B_money from table where name = 'B' for update
- update table set money = B_money - 300 where name = 'B'
- 我觉得单条记录的是不可重复读,区间查找多一条少一条的才叫幻读,这里关键是select ... for update 加排他锁
- 间隙锁,临键锁
- 项目中有用到微服务,就问service怎么注册到zk,如果多节点又如何识别
- 最后反问环节,了解了一下面试的组和工作内容,提了一下工作中用的是go,但是语言不是最重要的
感觉这位面试官比较羞涩,比较年轻,但是整体感觉都很好,相互聊天交流得很愉快,最后的结果也不重要。
#Java工程师##面经##社招##Shopee#