首先介绍一下自己,18年本科(末流985,电子信息工程专业)毕业,两年多工作经验,毕业第一年在一个国企,之后在杭州一个创业公司,这次面试的是蚂蚁金服。在这先申明,介绍这么详细只是为了大家方便参考,大家可以参考工作经验、年限,个人觉得如果你是通过内推渠道或者已经通过简历筛选,其实学历或者说学校对面试的影响不是特别大。因为疫情原因,都是电话面试,如果算上hr面试,一共是五面。

第一面  大概一个小时

是一个阿里这边的一个同事联系到我,我们约好面试时间。

1.先自我介绍一下

主要是介绍工作经验、项目经历、你在项目中承担的角色是什么等(这些是重点,要有逻辑和侧重点来介绍)我分享一下我的介绍大家可以参考。我18年在××大学毕业,之后在**公司××部门担任开发工程师,我们主要做的项目是***,我在这个项目中主要是后台开发,也会写一些对UI要求不是很高的页面。比较有挑战的是因为项目需要,需要开发一个规则引擎,我基于开源的doorls封装实现,具体的技术原理、技术实现如果感兴趣我们可以之后再讨论。之后因个人发展考虑到了杭州,因考虑到自己缺乏一个项目完整项目周期的历练,进入了一个创业公司。开始接触到分布式设计理论、微服务架构这些主流的架构设计。我们项目是一个涉及三高场景的支付交易的系统(具体是啥就不说了,要不然就暴露了哈哈哈)。技术选型是基于springboot开发微服务、dubbo做rpc框架、数据库主要是mysql和redis、mongdb等.常用的分布式技术比如分库分表、分布式锁、分布式事务等都有考虑涉及,技术细节可以之后讨论。

2.那大概说一下你们支付系统

这个主要是涉及自己对自己做过项目的熟悉程度,要对写在简历上的东西负责,且要对项目有思考、比如技术选型时候的考虑、系统存在的问题、如何改进等。

3.你们用到rocketMq 是基于什么考虑?

4.你们项目也用到了kafka,那为什么不统一一下,只用rocketMq或者只用kafka不行吗?基于什么考虑?

这个要结合具体的业务场景、为什么rocketmq合适而kafka不合适?主要要理解rocketmq和kafka的优势和劣势。

5.那说一下rocketmq如何保证消息不丢失呢?从原理上说一下

6.系统中如果保证消息不会重复消费?

我们都知道回答幂等,但是要提供出具体的实现方式、比如插入用唯一索引来保证插入的唯一性、更新时候状态设置等,具体实现可以上网找一下。、

7.你说你们用到了分布式锁?具体场景是什么样的?怎么实现的?

我们有营销系统(相当于优惠券系统)要保证库存不会出现超卖情况。主流实现方式有数据库、redis、zk。各个实现方式的原理、优势劣势、我们业务场景、基于这个我们考虑用**方案。这个需要个人有所思考。

8.因为涉及到高并发的场景,那你怎么保证数据库更新的有效性?

这个其实主要涉及到mysql的锁机制。乐观锁如何实现、悲观锁分类以及如何上锁等。要特别注意行锁和间隙锁实现,这个是重点,可能大多数人也一知半解,但是必须要搞懂的。我当初面试时候也是没回答好。

9.如何保证数据的一致性?

这个属于分布式事务的一部分。大家可以去掘金搜索一下,很多好文章。

10.好了,今天差不多了。你有什么问题问我吗?

这个就看个人了,真诚一点就好。我主要还是会问这次面试我的表现还有不足,但是不问具体的技术问题。面试也是为了检验自己和进步嘛。

第二面    40分钟

流程差不多,都是先自我介绍,然后通过项目提问,我主要写一些我还记得问题吧。

1.你们项目中redis怎么用的?基于什么考虑的?

2.你们项目中dubbo用来rpc,那如果自己设计一个正常的rpc要考虑哪些?如何设计?

这个我们要了解rpc的基本功能涉及到哪些?包括协议如何设计、如何序列化、网络传输(同步阻塞、异步阻塞等方式)

3.说一下dubbo服务注册和发现的过程。

spi机制要了解。

4.用zk做注册中心,那zk数据结构是怎样的?如何选举?

5.你们分库分表是如何做?

涉及到为什么分库分表?主要是数据量考虑。如何分库分表?分库分表技术.几种技术优势劣势对比。

6.你们的订单号和流水号这些是如何产生的?

这是生成分布式全局id的技术考察。当然还要结合自己的业务。

7.之后就是问问题环节了。当然面试过程中还会穿插一些java基础、比如currenthashmap等并发容器、读写锁、AQS等,要基于版本来说 比如1.7和1.8的实现就很不同。

第三面 大概45分钟

流程差不多,都是先自我介绍,然后通过项目提问,我主要写一些我还记得问题吧。这一面比较注重数据库方面。注意这里只是说比较注重数据库,不是说没有问其他问题。具体问题我也记不太清,知识点可以大概说一下。

1.innodb中索引的结构,这里涉及索引的数据结构、主键索引和普通索引区别、索引优化。这个要结合项目、比如如何发现慢sql、如何判断使用了什么索引?explain的使用。

2.innodb的事务。主要涉及到mvcc以及视图回滚等,各个隔离级别下的问题以及如何解决?比如mysql默认是可重复读级别,但是会有幻读问题,你得从原理上了解为什么会出现幻读、那如何解决呢,我们可以通过间隙锁来解决,那间隙锁的原理是什么?间隙锁有什么问题。回答的时候最好把这些问题都涉及到,引导面试官。因为面试是一个相互的过程,相当于聊天,要有来有回,不要人家问什么你就回答什么。

3.mysql的性能分析和解决。这个其实是比较开放性的题目,从分析工具到优化过程都可以说,只是要真诚,要是项目中真正遇到过的,不能随意瞎编。

4.还有分布式事务实现。主流的实现手段,项目中使用的分布式事务实现方法、为什么选择这种方法,基于什么考虑?还是方案的优劣比较。

4.问问题环节。

第四面  总监面 大概20分钟

这一面主要会考察你在架构方面的思考,不会抠技术细节

1.因为你们系统支付流程是异步,那如何保证数据一致性呢?

这个问题首先你得了解分布式CAP理论和base理论,知道分布式系统要解决的是什么问题,分布式系统的难点是什么。具体解决方案是什么?比如我们为了保证数据的最终一致性,我们要用分布式事务,那具体的实现方法是如何保证数据最终一致性的,如何做补偿、比如对账系统设计。不仅仅从技术角度,还可以涉及到业务上,比如如何进行资金流转、风控等。

2.系统稳定性如何保证,比如某个服务挂掉,如何保证业务正常进行?

这个涉及到如何进行系统限流、降级。当然限流方法原理比如漏桶方法、令牌桶方法等原理和优势和劣势要了解、以及具体的实现方法是什么要知道。除了技术方法,还涉及到运维上紧急处理线上问题的预案

这一面比较宽泛,所以自由发挥的空间很大,但是自己的知识广度还是要够,要了解一些技术或者经典方案,这样才能有得聊。

第五面  hr面 大概40分钟

1.介绍一下自己

2.介绍你的项目(我还以为hr不会问这些)主要从业务上来说就好,不要说特别技术的东西。

3.你们团队大概有多少人,你在团队中是什么角色?

4.你为什么离职(每段经历都要提一下,我这边只有两段经历,诚实回答就好,但是千万不要说上一家公司或者领导的坏话,这个不是面试技巧,我个人觉得你已经离职了,无论什么原因离职,但是离职了就没必要去评价任何人,特别是把这种评价告诉另一个人)

5.你的职业规划大概说一下(短期和长期)

6.自己评价一下你在前几家公司的工作表现和领导对你的评价。如果领导和你评价不一致,你觉得是什么原因?

7.你对下一个工作的期望(这个问题其实我觉得你应该在找工作前就想好,你来面试一个公司肯定是有过考虑的,可以在刚开始面试时候为了了解面试流程挑几个公司练手,但是之后一定不要海投)

8、评价一下之前的面试官(这些都是你之后的同事或者领导,虽然我觉得这很片面,但是还是不要有过多的负面情绪,理由和4点一样,不要随意去评价一个人,特别是你连面都没见过)

总结

笔试我没有写上,因为是一面结束之后补的笔试,难度就是leetcode简单和中等。

1.面试是一个相互交流的过程,不卑不亢就好,当然保持谦虚总没错。

2.Java基础我没写上,是因为一些基础知识我觉得无论面试还是工作都得自己理解,还有spring的源码 mybatis源码这些是加分项,不是必须,但建议还是看一看源码,特别是spring源码,太经典了。

3.每个面试官注重的东西不一样,所以有些知识可能我们了解不深,如果遇到不会直接说不会,千万不要瞎扯。因为问题会层层深入,不要给人留下不真诚的印象。

4.平时积累很重要,学习是对抗焦虑的唯一方法。

阿里-蚂蚁金服社招面经相关推荐

  1. 蚂蚁金服社招笔试——根据需求实现一个转账接口

    最近在考虑换工作,经历了两轮电话面试之后,蚂蚁金服给我发了一份笔试题目,需求如下: 使用java语言编写, 实现一个转账接口. 该接口提供账户之间的转账服务,入参包括转入账号.转出账号,交易金额,以及 ...

  2. 大厂面试系列(中)—拿到蚂蚁金服社招offer,过来还愿分享面经

    点赞关注,不会迷路!    前言 最近来给大家 分享一些好的面经和面试题.准备出一系列,持续更新.想看更多的可以点关注 来我主页看哈.点这里看大厂系列(上) 来吧 面试! 蚂蚁 面试前 蚂蚁的面试挺独 ...

  3. 阿里蚂蚁金服4面面经(已拿Offer)附答案!突如其来的意外之喜

    由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目. 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑.痛苦自不必说,直到被录取的那一刻,一整年的阴霾都一扫 ...

  4. 阿里蚂蚁金服4面面经(已拿Offer)附答案。突如其来的意外之喜

    由于作者面试过程中高度紧张,本文中只列出了自己还记得的部分题目. 经历了漫长一个月的等待,终于在前几天通过面试官获悉已被蚂蚁金服录取,这期间的焦虑.痛苦自不必说,直到被录取的那一刻,一整年的阴霾都一扫 ...

  5. 阿里蚂蚁金服、蘑菇街、腾讯、去哪儿等实习面试

    说在前面的话 今天收到了自己满意的第一个offer也是第二个offer(第一个太low了不好意思说,BAT牛叉不在意,没赶上华为面试可惜了),每次面试都有收获,不愧于自己这段时间的小小努力.其实也没什 ...

  6. 阿里蚂蚁金服中间件(Java 4轮面试题含答案):Redis缓存+线程锁+微服务等

    第一轮 说说HaspMap底层原理?再说说它跟HaspTable和ConcurrentHashMap他们之间的相同点和不同点? 讲讲jdk1.7和1.8的区别? 几种内置的线程池 MySQL事务隔离级 ...

  7. 参加完阿里蚂蚁金服Java中间件6轮面试题!6点血泪总结~

    蚂蚁金服一面:分布式架构 50分钟 1.个人介绍加项目介绍20分钟 2.微服务架构是什么,它的优缺点? 3.ACID CAP BASE理论 4.分布式一致性协议,二段.三段.TCC,优缺点 5.RPC ...

  8. 旷视申请赴港IPO:阿里蚂蚁金服持股近30%

    [TechWeb]8月26日,旷视科技正式向港交所提交上市申请, 根据招股书提供的信息,旷视科技将采用 AB股形式进行IPO , A类股份持有人每股可投10票,B类股份持有人每股可投一票,由高盛和摩根 ...

  9. 刚面完阿里蚂蚁金服的大数据工程师,有话说

    //蚂蚁金服// 蚂蚁金服,嗯,996 的岗位. 老读者可能很吃惊,小编不是纯做 SQL 吗,跑蚂蚁去做什么大数据工程师呢,SQL 能管用吗!很负责的告诉你,管用.Hive 与 SQL 本是同根生,语 ...

最新文章

  1. Android文件系统深入剖析
  2. 【Vegas2007】11月23日-螃蟹的做法(蒸煮两法)
  3. c bool 类型检查_C语言和C+的区别是什么?8个点通俗易懂的告诉你!
  4. 对DBF的操作建议用微软的驱动和新的链接字符串。
  5. is_numeric函数的引起的一个BUG说起
  6. 防火墙启动被拒绝解决方案
  7. SAP 限制出货数量小于销售订单数量
  8. [LOJ#6068]. 「2017 山东一轮集训 Day4」棋盘[费用流]
  9. 打开程序时固定位置_新手入门第五课:免费开源图像处理程序GIMP之矩形选择工具...
  10. android打包成apk会屏蔽注解,Android解决混淆打包之后注解被去掉的问题-Go语言中文社区...
  11. hibernate mysql语句_打印hibernate的SQL语句的几种办法
  12. [转载] Python之Numpy模块中的方法详解
  13. java 人脸识别 demo_基于虹软sdk,java实现人脸识别(demo)
  14. 空间相关性分析:空间权重矩阵
  15. 被称为最好最易理解的MATLAB入门教程
  16. 怎么认识自己--《思辩与立场:生活中无处不在的批判性思维工具》
  17. 【图像去噪】基于自适应布谷鸟算法优化维纳滤波器实现多光谱图像去噪附matlab代码
  18. 「目标检测算法」连连看:从Faster R-CNN 、 R-FCN 到 FPN
  19. 在电脑上查看WIFI的密码
  20. 爬虫中使用selenium实现对斗鱼直播的各个房间标题、主播id,直播内容类型和热度信息的爬取

热门文章

  1. Flask开发微电影网站(一)
  2. launch 启动脚本_使用Microsoft Speed Launch快速启动快捷方式
  3. 全票通过!微众开源项目EventMesh进入Apache孵化器
  4. 如何使用javascript制作一个网页端3D贪吃蛇游戏(附源码及链接)
  5. php学习报告_论坛PHP报告
  6. 智慧食堂到底如何运营?学校食堂必看
  7. 惠普800g1支持什么内存_做工精够迷你 惠普EliteDesk800G1评测
  8. linux ps 简书,史上最全ps 命令解析
  9. 计算笔记本电脑PPI的JavaScript小工具
  10. LinuxZIP压缩和解压缩