提高系统稳定性-兼容性

本文探讨了系统稳定性中的兼容性问题,包括接口、存储、异步消息、注册中心和日志的兼容性场景。例如,接口的字段修改可能导致序列化异常,数据库字段的变更可能影响程序运行,而日志格式变化可能破坏监控和报警机制。文章旨在梳理兼容性问题,并预告将分享解决这些问题的常用方法。
摘要由CSDN通过智能技术生成

前言

兼容性一直是个很隐秘的问题, 在配备良好的研发流程和人员的情况下, 在大流量系统中兼容性问题仍然会偶尔出现, 直接原因在于兼容性的测试复杂性, 隐蔽性, 需要考虑新旧代码共存的兼容性关系, 所以这里梳理了一些情况, 下一篇会整理一些常用的解决问题的方法, 大家还有要分享的情况可以私聊指导我一下

兼容性场景

接口兼容性:

修改/删除现有出入参字段

字段类型: 比如原来的字段是 String 类型, 代表着支付金额, 结果我们把这个字段的类型变成了 BigDecimal, 结果因序列化框架的配置原因, 把 23.001 序列化成了 23.00, 导致支付金额不正确

字段格式: 比如可还款金额原来是 1000.00 这种, 后来我们将字段格式变为了 1,000.00, 调用我们系统使用 new BigDecimal() 时候就会疯狂报错

字段含义: 这个就是原来这个字段代表利息, 后来将这个字段代表罚息, 会造成系统的混乱

验证要求: 比如使用了 @Length(min=10,max=100) 注解到了 userName 字段, 后面感觉长度 100 太长啦, 改为了 50, 结果出现了一个 50+ 的人名, 就会造成调用方系统报错

修改/删除老的接口方法

修改 http 方式: 本来是 put, 改为了 post 方式, 这样一来这个接口的调用方就会因为找不到这个接口而报错

修改出入参: 效果同修改字段的相关, 在加上比如有个入参 aaa, 感觉没人用的就删除了, 调用方用到这个字段也会报错或者效果不一致

修改接口名称: 这样一来这个接口的调用方就会因为找不到这个接口而报错

存储兼容性:

缓存兼容性

序列化方式: 一般使用缓存框架都有一种序列化方式,

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值