待办
- traceid链路跟踪
- git 规范整理
- 日志规范整理
- 序列化 和反序列化
- tracei完善
- jvm 参数整理
- maven的统一版本管理实践完善
- 项目健康度检查
- git 代码合并规范
- beanUtils.copy 带泛型的多级对象拷贝有问题
- spring aop 如何编写
- 【设计模式】责任链模式
- 结合JDK源码看设计模式——模板方法模式 【https://www.cnblogs.com/Cubemen/p/10682708.html】
- ThreadLocal原理,如何做到线程隔离
- dubbo如何使用
- ci/di
- jkendis
- ES
- KAFAKA
- rebbitmq
- nginx
- 服务降级 熔断 限流 分流
- 内存飙升,系统还没有进行gc,为什么系统一般在半夜进行fullGc?
- 配置中心
- 自定义注解在程序运营的什么时间端进行切入工作的
- select count(*)、count(ID)、count(1)有什么区别?哪个查询的效率最好
- 数据库如何保证商品超卖
辅助营销系统实现方案- 使用Redis原子性的特征 【需要进行库存扣除时直接对Redis中的库存进行decr操作(库存减1),然后去修改mysql中的库存,进行update操作时 update table where id = ? (and stock - 1 ) > 0,mysql更新库存是要判断剩余的库存是否够扣减,如果不够则进行事务回滚,使用try catch判断mysql是否执行成功,如果失败 则执行Redis的 incr 将刚才扣减的库存添加回来,保证数据库和Redis的库存一致】另外也可以使用数据库的乐观锁,或者Redis的分布式锁来保证同一时刻只能有一个线程来执行库存的扣减,但是还要使用update table where id = ? (and stock - 1 ) > 0 来判断库存。
如果只使用 update table where id = ? (and stock - 1 ) > 0 的话,可以保证库存不会为负值,但是不能保证一个优惠券或站外券只发给一个人的问题。如果把(乐观锁和分布式锁结合起来使用)则可以防止1、超卖2、一个券发给多个人的问题。
- 使用Redis原子性的特征 【需要进行库存扣除时直接对Redis中的库存进行decr操作(库存减1),然后去修改mysql中的库存,进行update操作时 update table where id = ? (and stock - 1 ) > 0,mysql更新库存是要判断剩余的库存是否够扣减,如果不够则进行事务回滚,使用try catch判断mysql是否执行成功,如果失败 则执行Redis的 incr 将刚才扣减的库存添加回来,保证数据库和Redis的库存一致】另外也可以使用数据库的乐观锁,或者Redis的分布式锁来保证同一时刻只能有一个线程来执行库存的扣减,但是还要使用update table where id = ? (and stock - 1 ) > 0 来判断库存。
- 时序图、ER、流程图 有什么区别?
- java 排查工具单 主要是Linux命令 参考地址:https://mp.weixin.qq.com/s/XTqVWsFrJNmPKUokoPRUtw
- AQS理论
- 结合代码来验证cas理论和ABA问题,使用Java代码来模拟高并发
不积跬步,无以至千里;不积小流,无以成江海。