热门词汇:
- 分布式
- 高并发
分布式
你不得不懂的分布式
常见面试问题
- Dubbo 的底层实现原理和机制
- 描述一个服务从发布到被消费的详细过程
- 分布式系统怎么做服务治理
- 接口的幂等性的概念
- 消息中间件如何解决消息丢失问题
- Dubbo 的服务请求失败怎么处理
- 重连机制会不会造成错误
- 对分布式事务的理解
- 如何实现负载均衡,有哪些算法可以实现?
- Zookeeper 的用途,选举的原理是什么?
- 数据的垂直拆分水平拆分。
- zookeeper 原理和适用场景
- zookeeper watch 机制
- redis/zk 节点宕机如何处理
- 分布式集群下如何做到唯一序列号
- 如何做一个分布式锁
- 用过哪些 MQ,怎么用的,和其他 mq 比较有什么优缺点,MQ的连接是线程安全的吗
- MQ 系统的数据如何保证不丢失
- 列举出你能想到的数据库分库分表策略;分库分表后,如何解决全表查询的问题。
分布式锁
https://www.jianshu.com/p/d72e8526bea1
分布式缓存
Redis
知乎 - 46道史上最全Redis面试题,面试官能问的都被我找到了(含答案)
Dubbo
https://zhuanlan.zhihu.com/p/31206177
高并发
Java
多线程
ThreadLocal
锁
知乎 - 阿里java架构师面试128题含答案:分布式架构+Dubbo+多线程+Redis
知乎 - Synchronized锁在Spring事务管理下,为啥还线程不安全?
-
synchronized:其实是一种 recursive lock,他被加在对象上,如果是 static 静态方法则被加在类上,当同一个线程每次调用 synchronized 方法时锁的计数器都会加一,当调用结束了再减一,直到为零锁释放。
-
ReentrantLock https://zhuanlan.zhihu.com/p/27177956
线程锁和分布式锁
synchronized 是用在线程之间的锁,对于分布式式环境的多进程中就不适用了,要用分布式锁。
数据库锁
知乎 - mysql 乐观锁、悲观锁、共享锁、排它锁、行锁、表锁
-
乐观锁: 自旋(就地循环等待)乐观锁,总是假设最好的情况,每次去拿数据的时候都认为别人不会修改,所以不会上锁,但是在更新的时候会判断一下在此期间别人有没有去更新这个数据,可以使用版本号机制和CAS算法实现。乐观锁适用于多读的应用类型,这样可以提高吞吐量
-
悲观锁(共享锁(写锁),排它锁(读锁)): 总是假设最坏的情况,每次去拿数据的时候都认为别人会修改,所以每次在拿数据的时候都会上锁,这样别人想拿这个数据就会阻塞直到它拿到锁(共享资源每次只给一个线程使用,其它线程阻塞,用完后再把资源转让给其它线程)。传统的关系型数据库里边就用到了很多这种锁机制,比如行锁,表锁等,读锁,写锁等,都是在做操作之前先上锁
-
共享锁,又称为__读锁__,是悲观锁的一种,可以查看但无法修改和删除的一种数据锁. 比如一个事务正在执行,没有执行commit语句,别的事务只能查询,而不能修改这个事务所对应行。 所有事务的
Select …
.都加上lock in share mode
实现了写锁 -
排他锁(Exclusive Locks,简称 X 锁),又称为__写锁__、独占锁, 若事务T对数据对象 A 加上 X 锁,则只允许 T 读取和修改 A ,其他任何事务都不能再对A加任何类型的锁,直到 T 释放 A 上的锁。这就保证了其他事务在T释放 A 上的锁之前不能再读取和修改 A。 所有事务的
Select ……
都加上for update
实现了读锁。 通过查询语句后面+for update使用,注意for update 一定要配合事务一起使用。 ```sql START TRANSACTION;
SELECT * FROM test WHERE id=1 for update;
COMMIT ```
-
经典问题:秒杀减库存问题。
微服务
Spring Cloud
中间件
Rabbitmq
1.rabbitmq 的使用场景有哪些?
2.rabbitmq 有哪些重要的角色?
3.rabbitmq 有哪些重要的组件?
4.rabbitmq 中 vhost 的作用是什么?
5.rabbitmq 的消息是怎么发送的?
6.rabbitmq 怎么保证消息的稳定性?
7.rabbitmq 怎么避免消息丢失?
8.要保证消息持久化成功的条件有哪些?
9.rabbitmq 持久化有什么缺点?
10.rabbitmq 有几种广播类型?
11.rabbitmq 怎么实现延迟消息队列?
12.rabbitmq 集群有什么用?
13.rabbitmq 节点的类型有哪些?
14.rabbitmq 集群搭建需要注意哪些问题?
15.rabbitmq 每个节点是其他节点的完整拷贝吗?为什么?
16.rabbitmq 集群中唯一一个磁盘节点崩溃了会发生什么情况?
17.rabbitmq 对集群节点停止顺序有要求吗?
Comments