📜  亚马逊面试经历 |设置 145(校外)(1)

📅  最后修改于: 2023-12-03 15:36:05.944000             🧑  作者: Mango

亚马逊面试经历 | 设置 145(校外)

本文是我在亚马逊公司参加的一次面试经历,面试设置为145(校外),以下是我在面试中遇到的问题和我的回答。

面试题目
  1. 介绍一下自己的项目,使用了哪些技术?
  2. 简述 HTTP 协议,了解哪些状态码?
  3. 说说你对于分布式系统的理解?
  4. 你是如何保证数据的一致性,避免出现覆盖问题的?
回答
1. 介绍一下自己的项目,使用了哪些技术?

我的项目是一个基于 SpringBoot 的在线购物商城,包括前台商城和后台管理系统。我主要负责了商城的前台部分开发,使用了 SpringBoot、MyBatis、Redis 等技术。

2. 简述 HTTP 协议,了解哪些状态码?

HTTP 协议是一个基于请求和响应的协议,使用 URI 来定位资源。它包含了请求报文和响应报文,报文中包含了请求方式、请求头、请求体和响应码等信息。

HTTP 状态码是服务器对于客户端请求的响应状态,常见的状态码有 200、404、500 等。其中,200 表示成功,404 表示未找到资源,500 表示服务器内部错误。

3. 说说你对于分布式系统的理解?

分布式系统是由多个独立计算机组成的系统,通过网络连接进行通信和协调工作,提高了系统的可伸缩性、可靠性和高可用性。分布式系统的核心思想是将一个大问题分解成若干个小问题,由多台机器同时处理,最终汇总结果。

4. 你是如何保证数据的一致性,避免出现覆盖问题的?

我通过使用分布式锁来保证数据的一致性,避免出现覆盖问题。在代码中,我使用了 Redis 实现了分布式锁。当多个线程需要对同一数据进行操作时,会同时尝试获取锁,只有获取锁成功的线程才能执行对数据的操作。这样可以避免多个线程同时修改同一数据,导致数据被覆盖的问题。

总结

这次面试虽然有些紧张,但是也让我对于自己的技术水平有了一个更清晰的认知。同时也发现了自己的不足之处,希望能够更好的提升自己的技能,为未来的工作打下坚实的基础。