2022.12.11开发问题阶段性记录
# 2022.12.11开发问题阶段性记录
Hi,我是阿昌
,今天我来记录一下针对10、11月
的一些开发问题的记录,见笑了哈哈。
1、ThreadLocla问题
问题点:
不要为了传参方便而选择使用threadlocal去改造你的业务
结论:
- ThreadLocal会让业务代码的不方便管理,当大量的去使用ThreadLocal来方便参数的传递,但后面如果出现了
串用户
的情况,就会很难的排查问题所在 - ThreadLocal会造成对应代码无法多线程代码性能优化的改造,因为ThreadLocal是线程独立的,如果多线程改造就会让其内容无法多线程公用
2、领域服务问题
问题点:
领域服务之间不能出现服务循环依赖问题
结论:
当对应业务Web获取请求,需要订单服务/库存服务的内容时,不应该出现领域服务之间的循环依赖,这样子如果是单节点服务的情况下,当某个领域服务宕机重启,会出现两个领域服务都相互依赖,就会无法启动对应服务
3、分布式事务问题
问题点:
A服务开启事物修改id1的数据,并调用B服务,同时也开启事物修改id1点数据,此时会出现死锁,最后事物等待超时;
结论:
减少事务的粒度;让A服务结束事务,然后B服务再操作。
4、sql中inner/Left join问题造成的事故
事故背景:
通过sql的方式,去删除用户对应老需求的异常数据
问题点:
使用了left join并搭配调剂等于null的情况,导致所以数据都符合条件,因此对于用户的所以相关数据都被删除
解决方案:
业务的B表还好冗余了A表对应的业务字段,就可以通过查询分组B表的数据去创建出被删除A表的数据。
结论:
区分inner/left 查询的区别效果,是否包含外链接表null的数据。避免不必要的开发和生产事故