蚂蚁集团—二面技术(直属领导)—面试总结

# 1.介绍一下你在公司的职能

方面面试官了解目前岗位职能,日常工作(业务+技术点)

# 2.介绍一个你觉得最有价值的项目

# 2.1 业务层面介绍(业务栈)

# 2.2 技术层面介绍(技术栈)

这里可以引入自己非常熟悉的知识点,引导面试官下一个问题往这上面提问。

# 3.(前面引入)分布式事务在业务上如何落地的

# 4.(前面引入)Redis和DB一致性问题的解决方案

# 4.1 缓存读写策略

  • Cache Aside Pattern(旁路缓存模式)

    • 读Cache,存在直接返回,不存在再从DB中读取并且放回Cache

    • 先更新DB,然后直接删除Cache

  • Read/Write Through Pattern(读写穿透)

    • 读Cache,存在直接返回,不存在再从DB中读取并且放回Cache

    • 读Cache,不存在时直接更新DB。存在时更新Cache,然后进行Cache和DB同步更新。

  • Write Behind Pattern(异步缓存写入)

    和读写穿透很相似,都是由Cache负责Cache和DB的读写更新.读写穿透是同步更新Cache和DB,但是异步缓存写入是只更新Cache,不直接更新DB,才用异步批量的方式更新DB。

    此方式适合一些写入频繁,但是数据一致性要求不高场景。

# 4.2 Cache和DB操作顺序

  • 先更新Cache,再更新DB

无法保证两次更新均成功,可能存在缓存中为新数据,但DB中仍然是旧数据

  • 先更新DB,再更新缓存

并发情况下两个线程进行操作可能导致Cache和DB数据不一致问题。

假设请求 A 先操作数据库,请求 B 后操作数据库,但是可能存在请求 B 先写缓存,请求 A 后写缓存的情况,从而导致数据库与缓存之间的数据不一致。

  • 先写DB,再删除Cache

业务如何保证写DB和删除Cache为原子操作,否则会出现写入DB但是Cache未做删除操作,导致数据一致性问题。

  • 请求1从DB中读取数据A数据
  • 请求2写操作更新DB中A数据,并且删除Cache中A数据
  • 请求1将数据A写入Cache
  • 先删除Cache,再更新DB

先删Cache,在写入DB之前,若有另外请求读取Cache未命中时,读取DB中‘旧’值将其更新回Cache,此时Cache中为旧值,DB中为新值。

  • 请求1将Cache中数据A删除
  • 请求2从Cache中读取A数据时未命中,查询DB并将其回写到Cache中
  • 请求1继续将DB中A数据更新

# 4.3 保证一致性解决方案

  • 采用延时双删策略
  • 异步更新缓存策略(订阅binlog的同步机制)
  • 混合存储优化方案

# 5.说一个你最了解中间件(Dubbo)

# 5.1 Dubbo设计观念(插件+微内核)

# 5.2 SPI

# 5.3 RPC调用原理

# 5.4 Dubbo序列化方式是否存在问题

# 6.解决的生产问题

# 6.1 Dubbo的热加载问题(版本bug)

# 6.2 单号生成方式导致问题

这个问题可以引入分布式下单号生成的几种方案。

# 7.消息队列是怎么使用的

# 7.1 推拉模式

消息队列核心应用场景:削峰、异步和解耦。那么在消息队列中消息模式有推拉模式。

  • Push模式

    Push模式是服务端根据用户需要,有目的、定时将数据推送到客户端。

    • [优点]对客户端要求第,方便客户端获取数据。
    • [优点]及时性好,服务端及时向客户端推送消息,吞吐量大。
    • [缺点]不能够保证发送成功,push采用广播模式
    • [缺点]没有消息状态跟踪,客户端是否成功接收到信息无法得知,存在消息丢失问题。
    • [缺点]针对性差,无法满足客户端定制化需求。
    • [缺点]客户端消费能力弱时,容易造成消息对接
  • Pull模式

    客户端主动向服务端获取信息。

    • [优点]针对性强,可满足客户端定制化需求。
    • [优点]信息传输量小,该次网络请求中只有客户端请求和服务端响应数据
    • [优点]服务端压力较小,只是被动地响应客户端请求。客户端根据自身消费能力拉取。
    • [缺点]实时性较差,对于服务端实时更新数据客户端无法感知,无法获得实时数据
    • [缺点]对客户端要求较高

# 7.2 消息丢失问题(分布式事务、本地消息表)

# 7.3 用过几种消息队列(如果用过可以拓展比较)

# 8.看过哪些中间件源码(Dubbo)

# 9.对公司的整体技术架构的理解

# 10.职业发展规划

# 11.为什么要离职