1、你们的项目中使用的设计模式有哪些?
你了解设计模式,项目具体怎么用
1.构造者模式
- 用到了什么设计模式
- 设计模式是什么,解决什么问题的
- 怎么用
2.适配器模式
3.工厂模式
4.策略模式
设计模式的优缺点:
缺点:
1、代码结构复杂度变高
2、耗费内存也会变高
优点:
1、代码扩展性
2、代码结构清晰,可维护增强
3、解耦项目的业务
2、双写一致性问题(mysql和redis)
* 1、假设保存菜品成功,保存redis失败,问是否应该回滚菜品的数据?<br /> * * 需要回滚,在点餐时菜品需要先在Redis中完成预扣,如果redis中没有当前的菜品,则无法完成预扣,菜无法售卖<br /> * 变化:假设保存的菜品的口味成功,保存到Redis失败,问是否应该回滚菜品分类的数据?<br /> * * 不需要,保存redis不会影响正常业务逻辑的执行<br /> *<br /> * 2、更新数据时,应该是先更新redis还是先更新数据库? 为什么? 双写一致性问题<br /> * * 先更新数据库,考虑redis和mysql的数据时刻保持一致
分布式事务:
1、讲问题背景(项目调用链路)
2、解决方案
3、原理是什么
4、需要注意什么
4.分库分表出现的BUG
问题描述:
sharding_id字段不能被修改。
原因:
sharding_id字段表示的是分片键。在设计表结构时,是用来预防未来项目会出现分库分表场景的出现,它是与分片策略密切相关的,所以一旦设定是不能修改的。
解决方案:
在代码中不得对sharding_id进行修改。
5.项目中哪些地方用过多线程?
原则:单位时间内处理复杂且庞大的数据或业务时(提升效率)
6.项目中有哪些地方使用了分布式事务:
7.学习的技术
8.手写代码
手写代码:
1、单例模式(懒汉、饿汉、双重检查锁)
2、死锁代码
3、JDBC代码
算法题: 二分、冒泡、选择 排序