随笔分类 - 规范
摘要:【IT老齐020】接口幂等性 传统方案 业务代码增加前置判断 if(数据未更新){ 更新数据 } 缺点 判断因素过多 技术问题干扰业务代码 通用方案 幂等表 架构方案 nginx+lua+redis 请求经过nginx转发到redis,redis查找幂等表是否存在请求id(uuid或请求hash)对
阅读全文
摘要:【IT老齐012】外键约束 优点 保证数据的完整性和一致性 级联操作方便 数据一致性交给数据库,代码量小 缺点 性能问题 额外的数据一致性校验查询 并发问题 外键约束会启用行级锁主表写入时会进入阻塞 级联删除问题 多层级联删除会让数据变得不可控 数据耦合问题 数据库层面数据关系产生耦合,数据迁移维护
阅读全文
摘要:【IT老齐009】IP直连 问题 IP直连存在强耦合问题,因为业务更新可能发生代码修改,编译,部署,走流程等。 线上建议用域名代替ip地址。 解决方案 内部DNS 建立一个域名解析服务器,直接访问数据库ip对应的域名,域名解析服务器根据配置解析该域名对应的IP返回。 优点 IP地址迁移变得灵活,后续
阅读全文
摘要:【IT老齐007】水平分表严禁自增主键 自增主键在分布式环境下不适用 由于自增主键必须连续,所以只能按照范围法进行分片。 引发问题 ID的数量已固定。无法进行动态扩展,会有资源浪费。 产生“尾部热点”效应,最后分片压力极大。 UUID不能替代自增主键 uuid,唯一无序。无序导致索引重排。主键有序的
阅读全文