2018最新淘宝面试出炉:分布式锁+集群+一致Hash算法+底层技术原理

本文涉及的产品
云数据库 Redis 版,社区版 2GB
推荐场景:
搭建游戏排行榜
简介:
3600_7_62zvvEWyeQmOO8Hn

原文链接: https://blog.csdn.net/SpringJavaMyBatis/article/details/83415696

3624_7_1FgCG6krk2RKcr

3649_7_626gFTyGetW17g5j

3671_7_8B9cAhsTcOqnOt
阿里技术面试回顾:
1.Java基础还是需要掌握牢固,重点会问HashMap等集合类,以及多线程、线程池等。

2.Java AIO BIO NIO等

3.Redis的使用以及最常问的一致hash算法,以及消息队列的异步场景等。

4.各种平时经常使用的开源框架Spring等,从原理到技术细节。

5.高并发场景的技术方案。

6.以及微服务等架构设计。

这些技术范围的面试题目还是需要平时多学习和积累,提前准备充分,面试通过率就会高很多,最后总结了部分阿里Java必考题目用于参考~

【阿里巴巴面试题目含答案】

1,mysql的三大引擎是啥?

mysql常用的引擎有InnoDB,MyISAM,Memory,默认是InnoDB

InnoDB:磁盘表,支持事务,支持行级锁,B+Tree索引

ps:优点: 具有良好的ACID特性。适用于高并发,更新操作比较多的表。需要使用事务的表。对自动灾难恢复有要求的表。

缺点:读写效率相对MYISAM比较差。占用的磁盘空间比较大。

mysql的4大特性+4种隔离级别:

MyISAM:磁盘表,不支持事务,支持表级锁,B+Tree索引

ps: 优点:占用空间小,处理速度快(相对InnoDB来说)

缺点:不支持事务的完整性和并发性

MEMORY(Heap):内存表,不支持事务,表级锁,Hash索引,不支持Blob,Text大类型

ps: 优点:速度要求快的,临时数据

缺点:丢失以后,对项目整体没有或者负面影响不大的时候。

2,redis的hash算法用的是啥?

redis应该是使用一致性hash算法---MurmurHash3 算法,具有低碰撞率优点,google改进的版本cityhash也是redis中用到的哈希算法。

现有的主流的大数据系统都是用的 MurmurHash本身或者改进

3,nosql为啥比sql快?

Nosql是非关系型数据库,因为不需要满足关系数据库数据一致性等复杂特性所以速度快;

sql是关系型数据库,功能强大,但是效率上有瓶颈

4,什么是索引为啥nosql没索引?nosql有索引滴

索引分为聚簇索引和非聚簇索引两种,聚簇索引是按照数据存放的物理位置为顺序的,而非聚簇索引就不一样了;聚簇索引能提高多行检索的速度,而非聚簇索引对于单行的检索很快。

聚簇索引:有主键时,根据主键创建聚簇索引;没有主键时,会用一个唯一且不为空的索引列做为主键,成为此表的聚簇索引;如果以上两个都不满足那innodb自己创建一个虚拟的聚集索引

非聚簇索引:非聚簇索引都是辅助索引,像复合索引、前缀索引、唯一索引

5,B+树和B树区别?

B树的非叶子节点存储实际记录的指针,而B+树的叶子节点存储实际记录的指针

B+树的叶子节点通过指针连起来了, 适合扫描区间和顺序查找。

BATJ面试题目

以下列举22个视频资料。

1,应该怎么封装简历才有BATJ面试机会?

2,HashMap底层执行原理,

3,hashtable和ConcurrentHashMap如何实现线程安全?

4,jvm的内存布局,垃圾回收机制

5,类加载机制里的,双亲委派模型

6,阐述事务的隔离级别和传播属性

7,高并发下,如何做到安全的修改同一行数据?

8,A服务调用B服务多接口,响应时间最短方案;

9,A系统给B系统转100块钱,如何实现?

10,动态代理的几种实现方式及优缺点

11,多线程下读概率远远大于写概率,如何解决并发问题?

12,按线程池内部机制,当提交新任务时,有哪些异常要考虑?

13,@Transaction注解一般写在什么位置?如何控制其回滚?

14,说说Spring的IOC容器初始化流程?

15,说说springboot启动机制

16,Redis高性能的原因大概可以讲一些?

17,你是怎么控制缓存的更新?(被动方式/主动方式/增量/全量)?

18,浅析Http和https的三次握手有什么区别。

19,谈谈Session/cookie机制,如何实现会话跟踪?

20,什么是一致性hash?

21,MQ有可能发生重复消费,如何避免,如何做到幂等?

22,如何做限流策略,令牌桶和漏斗算法的使用场景?



相关实践学习
基于Redis实现在线游戏积分排行榜
本场景将介绍如何基于Redis数据库实现在线游戏中的游戏玩家积分排行榜功能。
云数据库 Redis 版使用教程
云数据库Redis版是兼容Redis协议标准的、提供持久化的内存数据库服务,基于高可靠双机热备架构及可无缝扩展的集群架构,满足高读写性能场景及容量需弹性变配的业务需求。 产品详情:https://www.aliyun.com/product/kvstore     ------------------------------------------------------------------------- 阿里云数据库体验:数据库上云实战 开发者云会免费提供一台带自建MySQL的源数据库 ECS 实例和一台目标数据库 RDS实例。跟着指引,您可以一步步实现将ECS自建数据库迁移到目标数据库RDS。 点击下方链接,领取免费ECS&RDS资源,30分钟完成数据库上云实战!https://developer.aliyun.com/adc/scenario/51eefbd1894e42f6bb9acacadd3f9121?spm=a2c6h.13788135.J_3257954370.9.4ba85f24utseFl
相关文章
|
1月前
|
NoSQL 算法 安全
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
Redlock 算法-主从redis分布式锁主节点宕机锁丢失的问题
152 0
|
2月前
|
存储 缓存 负载均衡
一致性 Hash 算法 Hash 环发生偏移怎么解决
一致性 Hash 算法 Hash 环发生偏移怎么解决
89 1
|
21天前
|
缓存 算法 关系型数据库
深度思考:雪花算法snowflake分布式id生成原理详解
雪花算法snowflake是一种优秀的分布式ID生成方案,其优点突出:它能生成全局唯一且递增的ID,确保了数据的一致性和准确性;同时,该算法灵活性强,可自定义各部分bit位,满足不同业务场景的需求;此外,雪花算法生成ID的速度快,效率高,能有效应对高并发场景,是分布式系统中不可或缺的组件。
深度思考:雪花算法snowflake分布式id生成原理详解
|
1月前
|
算法 Java 数据中心
分布式ID生成系统之雪花算法详解
在当今的云计算和微服务架构盛行的时代,分布式系统已成为软件开发的重要组成部分。随着系统规模的扩大和业务的复杂化,对数据一致性和唯一性的要求也越来越高,尤其是在全局唯一标识符(ID)的生成上。因此,分布式ID生成系统应运而生,成为保证数据唯一性和提高系统可扩展性的关键技术之一。雪花算法(Snowflake)是Twitter开源的一种算法,用于生成64位的全局唯一ID,非常适用于分布式系统中生成唯一标识符。下面我们将深入探讨雪花算法的原理、结构和实现方式。
93 2
 分布式ID生成系统之雪花算法详解
|
2月前
|
Java Linux 开发工具
Centos7搭建minio分布式集群
Centos7搭建minio分布式集群
|
2月前
|
存储 分布式计算 负载均衡
浅谈分布式共识算法概念与演进
浅谈分布式共识算法概念与演进
41 0
|
2月前
|
分布式计算 算法
分布式系统设计之共识算法—2PC、3PC、 Paxos
分布式系统设计之共识算法—2PC、3PC、 Paxos
39 1
|
3月前
|
存储 算法 NoSQL
分布式一致性与共识算法(一)
分布式一致性与共识算法(一)
58 0
|
3月前
|
存储 负载均衡 大数据
【分布式】集群和分布式
【1月更文挑战第25天】【分布式】集群和分布式
|
3月前
|
存储 分布式计算 负载均衡
集群与分布式:区别与联系
集群与分布式:区别与联系
66 0