慧策 掌上先机秋招Java一面
- 自我介绍
- 你觉得领域驱动设计相对之前MVC的形式,好处在哪?
- 有参与过新的领域的设计吗
- 那你在设计这个聚会的时候都考虑过哪些点,遇到过哪些挑战
- 刚刚有讲到MQ的引入,你觉得是必要的吗,如果不用MQ还有其他方式可以解决这个问题吗
- 你们是只是按照DDD做代码结构的拆分还是按照这个思想拆分了服务
- 微服务之间用了什么通信协议
- 用HTTP协议和其他RPC协议有什么区别,有什么好处和坏处
- TCP有哪些好处和优势让我们选择,一定要选择TCP协议吗
- QUIC相比TCP有好处也有坏处,你觉得他哪些方面做的不会很好(答的不好)
- TCP的滑动窗口机制
- DDD的充血模型有什么好处和坏处
- 充血模型更符合面向对象思想,你觉得我们引入面向对象这个思想到底是为了解决什么问题
- 继承和实现为什么会同时出现这两种机制,他们表达了什么不同的含义
- 你了解过Java哪些自带的接口
- 项目中用多线程去提速,用分布式锁保证安全,先说说为什么用分布式锁
- 有没有可能会出现死锁的情况,如果出现死锁会怎么处理
- 事务是怎么处理的,现在是不同线程不同事务,失败回滚单个,如果现在要你改成出现异常全部一起回滚怎么设计
- MySQL的连表平时使用吗,什么时候用左连接,什么时候用内连接。
- 用group by的时候having和where有什么区别
- 为什么要用索引,索引的存储在哪里,存储结构是怎样的
- MySQL有几种索引结构,他们之间的区别
- 可以给各个字段都加上索引吗
- MQ本质上是基于生产者消费者模型来做的,我想让你手写一个生产者消费者的队列(没带电脑,让我口述)
- 怎么尽可能的去提高他的传输效率(那就不加锁,分区,设置消费者组不同的消费者消费他自己的队列,可以用序列号的方式保证有序)
- kafka就是采用这种方式,一个分区只能被一个消费者消费,那我要动态增加多个消费者怎么办?比如3个分区,4个消费者,kafka没有解决这种问题,你会怎么设计去解决。(如果不是一个队列就上轻量级锁)让我下去再去网上学习一下其他解决方案