1、上线新需求,影响旧逻辑
需求迭代快,又没时间重构代码,很容易造成代码臃肿难维护,往往一点小的改动,会意想不到的影响到旧的逻辑,造成线上事故。
这种问题应该在设计之初,考虑业务的纵向拆分,向微服务靠拢,尽量每次上线影响范围最小化。
2、更新sql没有where条件
经常懒省事,把sql的where条件都参数化,看起来更灵活,却埋下了可怕的隐患,如果入参有问题,导致where条件是空,数据被全表更新,麻烦就大了。所以更新sql,必填的条件是必不可少的。
3、数据库连接被打满
单系统不能胜任日益增长的请求时,系统拆分、分布式部署必不可少,如果拆分后的每个实例都直连数据库,且数据库连接数设置不合理的情况下,会出现连接被打满的情况。分库分表扩容、或拆分单独的数据操作服务等等,根据具体业务具体操作。
4、分布式系统中,相同的配置(例如数据源)到处配置,后期维护、修改及其不方便,系统框架设计不清晰,系统分层不明确