至2023春以来开发问题阶段性记录总结Part2
至2023春以来开发问题阶段性记录总结Part2
Hi,我是阿昌,记录一下针对2022秋至2023春以来的一些开发问题的记录和一些注意点,菜鸡🐔见笑了哈哈。+2
1、当问题排查不出结果时,多打印日志
通过日志可以知道程序走到哪里了,且当时的内存变量状态如何
2、查看是否能够增加请求入参来减少增加接口
减少对外暴露接口,可降低系统的不稳定性。减少系统可能出现的风险,如Excel导入,可通过增加一个enum来支持不同的类型导入
3、数据库ddl更新操作动态set时,评估需要指定set的字段值
当update语句只更新某一个字段时,写sql入参动态判断Null,来减少sql执行的成本。
4、处理缓存服务时,应该让一个服务处理一个服务的缓存信息,对外暴露dubbo服务查询缓存信息
缓存服务应该是只针对一个服务对应的缓存服务,不然某业务服务更换缓存服务,会出现缓存业务失效的问题
5、Comparison method violates its general contract问题
参考链接:https://blog.csdn.net/samur2/article/details/109231250
6、分表添加字段遗漏问题
项目初期可能有一些分表sql添加会写漏,操作冷门业务时,操作sql导致报不存在字段的sql错误
7、服务顺序发布、web可同时发布
当web系统和服务系统同时发布时,发布的顺序为 服务系统 —> web系统
8、optimze 操作会导致锁表,请在半夜执行
9、sql连表查询时,应注意是否使用上了索引
在重要的连表字段中,应强制添加索引
10、当异步触发任务的时候,考虑服务发布重启后,是否会丢失任务
JVM级别的异步任务可能会存在服务重启后丢失的情况,如果想要任务不丢失,请提升使用中间件【如Mq,Mysql任务表等】