距上次写这个话题已有2年半了,时间过得真快。主要还是谈业务系统常见的一些坑(接着“一”来说)。点很碎片,不断积累吧
- 空缓存时间尽量短 因为各种原因导致删缓存失败的空缓存case太蛋疼了
- 读写分离里,写请求里的读DB,须走master
- 计数的消息通知,用绝对值而不是增量
- 写接口,写DB是同步还是异步呢?这是个问题。考虑到“削峰”当然是异步,同时缓存更新肯定是同步的。然而可能有些接口会强读db,这个时候如果异步消费慢就有可能产生脏读了。同步可能就有性能问题,具体要结合业务分析了
- 状态和属性常常是业务字段,写的入口一定要收敛。当然从设计规范来说写接口都是要收敛的。
- 特别复杂的状态变更以及引起的计数变更等,要合理实现。比如定义转换数组或者简化的FSM等,而不是各种硬编码。这样不容易出错。