前言
消息中间件是分布式系统中的重要组件,在实际工作中常用消息中间件进行系统间数据交换,从而解决应用解耦、异步消息、流量削峰等问题,实现高性能、高可用、可伸缩和最终一致性架构。目前市面上可供选择的消息中间件有RabbitMQ、ActiveMQ、 Kafka、 RocketMQ、ZeroMQ、MetaMQ等。
本文总结了近年来在实际项目中使用消息中间件的经历和踩过的一些坑,可为你在实际工作中进行产品选型、业务场景方案制定、性能调整等提供明确的思路。由于是基于Java语言开发,因此它非常适合Java初中级程序员阅读,学习。
一面
- 介绍项目
- java 线程池的实现原理,threadpoolexecutor关键参数解释
- hashmap的原理,容量为什么是2的幂次
- 为什么要同时重写hashcode和equals
- ConcurrentHashMap如何实现线程安全?
- 介绍Java多线程的5大状态,以及状态图流转过程
- 介绍下Synchronized、Volatile、CAS、AQS,以及各自的使用场景
- B+树和红黑树时间复杂度
- 如果频繁老年代回收怎么分析解决
- JVM内存模型,新生代和老年的回收机制
- mysql limit分页如何保证可靠性
二面
- 了解哪些排序算法,讲讲复杂度
- 手撕归并排序
- Redis有哪些数据结构?底层的编码有哪些?有序链表采用了哪些不同的编码?
- redis的hash数据结构最多能存储多少个元素
- 自己如何实现RPC?
- mysql默认存储引擎?MyISAM、InnoDB、MEMORY的区别
- 什么是幻读,如何解决
- 事务隔离级别有什么?通过什么来实现的?分别解决了什么问题?
- 乐观锁与悲观锁的使用场景
三面:
- 自我介绍
- 参与的并发项目,从设计到部署,按照流程讲一遍。
- 项目相关你用过redis,用在什么场景,怎么使用的?
- mysql同步机制原理,有哪几种同步方法
- 数据库主从同步如何实现,事务如何实现
- 谈谈你对SOA和微服务的理解,以及分布式架构从应用层面涉及到的调整和挑战。
- 阿里系中间件metaQ及原理与现有的kafka有什么异同
- 在阿里有了解过什么中间件吗?实现原理?与其他开源消息队列有什么特点?
- 为什么选择换公司?
- 三年到五年的职业规划?
分享
1、算法大厂——字节跳动面试题
2、2000页互联网Java面试题大全
3、高阶必备,算法学习
本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录