1. redis各种应⽤场景
2. redis持久化机制
3.有没了解Docker,Docker和虚拟机有什么区别?
4.说说rabbitmq的结构。
四种交换机:
- 直连交换机,Direct exchange:带路由功能的交换机,根据routing_key(消息发送的时候需要指定)直接绑定到队列, ⼀个交换机也可以通过过个routing_key绑定多个队列。
- 扇形交换机,Fanout exchange:⼴播消息。
- 主题交换机,Topic exchange:发送到主题交换机上的消息需要携带指定规则的routing_key,主题交换机会根据这个规 则将数据发送到对应的(多个)队列上。
- ⾸部交换机,Headers exchange:⾸部交换机是忽略routing_key的⼀种路由⽅式。路由器和交换机路由的规则是通过 Headers信息来交换的,这个有点像HTTP的Headers。
- 将⼀个交换机声明成⾸部交换机,绑定⼀个队列的时候,定义⼀ 个Hash的数据结构,消息发送的时候,会携带⼀组hash数据结构的信息,当Hash的内容匹配上的时候,消息就会被写⼊队 列。
![](https://img2020.cnblogs.com/blog/1420036/202006/1420036-20200606153531238-93975536.png)
5.项⽬中哪⾥⽤到了kafka,kafka特性?
6. 介绍springcloud核⼼组件及其作⽤,以及springcloud⼯作流程。
![](https://img2020.cnblogs.com/blog/1420036/202006/1420036-20200606153613522-1518988756.png)
7.介绍springcloud⼼跳机制,以及消费端如何发现服务端(Ribbon)?
![](https://img2020.cnblogs.com/blog/1420036/202006/1420036-20200606153739767-221238068.png)
8.eureka缓存机制?
- 第⼀层缓存:readOnlyCacheMap,本质上是ConcurrentHashMap:这是⼀个JVM的CurrentHashMap只读缓存,这个主要是 为了供客户端获取注册信息时使⽤,其缓存更新,依赖于定时器的更新,通过和readWriteCacheMap 的值做对⽐,如果数据不 ⼀致,则以readWriteCacheMap 的数据为准。readOnlyCacheMap 缓存更新的定时器时间间隔,默认为30秒
- 第⼆层缓存:readWriteCacheMap,本质上是Guava缓存:此处存放的是最终的缓存, 当服务下线,过期,注册,状态变 更,都会来清除这个缓存⾥⾯的数据。 然后通过CacheLoader进⾏缓存加载,在进⾏readWriteCacheMap.get(key)的时候,⾸ 先看这个缓存⾥⾯有没有该数据,如果没有则通过CacheLoader的load⽅法去加载,加载成功之后将数据放⼊缓存,同时返回数 据。 readWriteCacheMap 缓存过期时间,默认为 180 秒 。
- 缓存机制:设置了⼀个每30秒执⾏⼀次的定时任务,定时去服务端获取注册信息。获取之后,存⼊本地内存。
![](https://img2020.cnblogs.com/blog/1420036/202006/1420036-20200606153816877-1196490384.png)
9.rpc和http的区别,使⽤场景?
10.分布式事务如何保持⼀致性?
⼆阶段提交:
概念:参与者将操作成败通知协调者,再由协调者根据所有参与者的反馈情报决定各参与者是否要提交操作还是中⽌操 作。
作⽤:主要保证了分布式事务的原⼦性;第⼀阶段为准备阶段,第⼆阶段为提交阶段;
缺点:不仅要锁住参与者的所有资源,⽽且要锁住协调者资源,开销⼤。⼀句话总结就是:2PC效率很低,对⾼并发很不 友好。
三阶段提交:
概念:三阶段提交协议在协调者和参与者中都引⼊超时机制,并且把两阶段提交协议的第⼀个阶段拆分成了两步:询问, 然后再锁资源,最后真正提交。这样三阶段提交就有CanCommit、PreCommit、DoCommit三个阶段
11. 什么情况下⽤到分布式开发?
12. jvm内存模型,各个部分的特点?
13. 类加载器,双亲委派模型?
14. 类加载机制
15. java堆的结构,⼀个bean被new出来之后,在内存空间的⾛向?
16. 如何让栈溢出,如何让⽅法区溢出?
17.写出⼏个jvm优化配置参数。
18.有哪⼏种GC机制?
19. springboot启动过程。
20. 说说⼏个常⽤的注解?
21. spring事件的实现原理,写出常⽤的⼏个事件。
22. spring的bean的⽣命周期?
23. BeanFactory和FactoryBean的区别。
24. spring中使⽤到了FactoryBean的哪个⽅法?
25. 说说HashMap、ConcurrentHashMap数据结构,1.7与1.8的区别?
26. 谈谈数据结构,⽐如TreeMap。
27. B-tree、B+tree?
28. 红⿊树左旋与右旋的区别?
29. concurrent包下有哪些常⽤类?
30. 三种分布式锁。
30. 你知道哪些常⽤的阻塞队列?
31. newFixedThreadPool使⽤到了哪个阻塞队列?
32. 说说mysql存储引擎innodb和myisam的区别和使⽤场景
33. 说说mysql查询优化。
34. 说说脏读、不可重复读、幻读;
35. 说说事务的四种特性(ACID)。
36. codis与redis集群的区别。
37. 要缓存⽹站登录的⽤户信息,你有⼏种⽅式
38. 让你设计⼀套分布式缓存,如何设计可以同时更新所有服务器的缓存?
面试小编为什么只贴出来了一部分答案呢,要是把所有答案都贴出来的话一篇文章就写不下了,所以我特意把面试题以及答案都整理成了PDF电子书形式,也方便随时打开看,每日一道题,面试必无敌。
小编搞到了一些大厂真实面试题,主要有:阿里巴巴、腾讯、乐信、中国平安、丰巢科技、oppo等大厂真题,以及JVM、SPringBoot、SpringCloud、数据库、Linux、缓存、消息中间件、源码等相关面试题。
加我好友免费领取,备注:博客园