蚂蚁金服Java后端开发工程师一面面经

问题涉及技术架构、消息队列、Spring框架等多个方面

  1. 技术架构,以及为什么要这样设计
  2. MQ是怎么保证不重复消费,可靠性投递,本身是怎么保证可用性的
  3. Spring Cloud以及外部都有提供动态线程池,为什么还要自己写一套
  4. Spring IOC的理解,底层的实现机制,用了什么设计模式
  5. AOP的底层实现机制
  6. 动态代理和静态代理的区别,动态代理的实现方式,以及两种实现方式的区别
  7. 用过哪些设计模式
  8. 单例有哪些类型,单例的eager,lazy
  9. 静态内部类各自优缺点
  10. synchronized底层是怎么实现的
  11. 项目里是怎么应用的,MySQL索引结构是什么,慢SQL怎么排查
  12. 了解过哪些分布式的设计理念,各自有什么区别
  13. 两个用户同时读一个数据,用户1读到了老的数据,用户2读到了新的数据,该怎么保证用户1的一致性
  14. 分布式锁的场景
  15. 实现分布式锁有哪些方式以及优缺点

#软件开发笔面经##牛客创作赏金赛#
全部评论
分布式的设计理念:这个怎么回答呀? 设计分布式系统的理念主要包括以下几点: 任务分解:将大型任务分解为多个小任务,并在多台服务器上同时执行这些小任务。通过任务分解,分布式系统能够充分利用多台服务器的计算能力,提高整体性能。 数据一致性:在分布式系统中,保持数据一致性是一个关键问题。为了解决这一问题,分布式系统采用各种数据同步和事务处理机制,以确保数据在多个节点之间保持一致。 负载均衡:负载均衡是分布式系统的核心设计理念之一。通过合理分配任务到各个服务器节点上,负载均衡可以有效地提高系统的吞吐量和响应速度。负载均衡器通常作为分布式系统的入口点,负责将客户端请求分发到不同的服务器节点上。 容错和恢复:在分布式系统中,容错和恢复机制至关重要。由于网络通信和节点故障是不可避免的,因此设计时必须考虑如何快速检测和恢复故障节点,以保证整体服务的稳定性。常见的容错和恢复技术包括数据备份、故障转移和请求重试等。 透明性:设计分布式系统时追求透明性原则,即尽量减少用户对底层细节的关注。通过提供统一的接口和抽象层,分布式系统隐藏了实现细节,使得用户在使用时无需关心服务器的具***置、数据存储方式等细节问题。透明性有助于提高用户体验和降低维护成本。 可伸缩性:随着企业业务的不断增长,分布式系统需要具备良好的可伸缩性来适应需求的变化。通过设计可扩展的架构和模块化组件,分布式系统能够在不影响现有业务的前提下灵活地增加或减少服务器资源,以满足不断增长的计算需求。 总之,分布式系统的特点和设计理念充分体现了其高效、稳定、可扩展的优势。通过合理地运用分布式系统,企业能够更好地应对不断变化的市场需求和技术挑战,提升自身的竞争力。
点赞 回复 分享
发布于 08-13 17:51 新加坡
佬电话面之前会给邮件通知时间吗
点赞 回复 分享
发布于 08-30 02:08 湖北

相关推荐

11-04 14:10
东南大学 Java
_可乐多加冰_:去市公司包卖卡的
点赞 评论 收藏
分享
5 17 评论
分享
牛客网
牛客企业服务