一、架构层面。
1、集群化部署,负载均衡,机器性能问题,数据库无压力
2、数据库分库分表,读写分离。数据库可水平扩展,抗住数据库压力。
3、对写少读多的请求,引入缓存集群。(盲目加数据库,数据库机器成本比较高)针对数据库读压力优化。
4、MQ削峰填谷,1000笔请求,500笔实时处理,500笔存入MQ异步处理。针对数据库写压力优化。
二、程序层面。
1、防重校验,幂等设计
a、zookeeper、redis等实现分布式锁。
b、乐观锁控制。
c、主键冲突,唯一索引冲突。
d、token令牌,申请令牌,验证令牌两个阶段。
2、并发多次更新异常
a、悲观锁。
b、乐观锁。
三、系统优化
jvm调优,数据库设计调优。sql优化。(待续)