Spring的传播特性

  1. PROPAGATION_REQUIRED(加入已有事务) 尝试加入已经存在的事务中,如果没有则开启一个新的事务。
  2. RROPAGATION_REQUIRES_NEW(独立事务) 挂起当前存在的事务,并开启一个全新的事务,新事务与已存在的事务之间彼此没有关系。
  3. PROPAGATION_NESTED(嵌套事务) 在当前事务上开启一个子事务(Savepoint),如果递交主事务。那么连同子事务一同递交。如果递交子事务则保存点之前的所有事务都会被递交。
  4. PROPAGATION_SUPPORTS(跟随环境) 是指 Spring 容器中如果当前没有事务存在,就以非事务方式执行;如果有,就使用当前事务。
  5. PROPAGATION_NOT_SUPPORTED(非事务方式) 是指如果存在事务则将这个事务挂起,并使用新的数据库连接。新的数据库连接不使用事务。
  6. PROPAGATION_NEVER(排除事务) 当存在事务时抛出异常,否则就已非事务方式运行。
  7. PROPAGATION_MANDATORY(需要事务) 如果不存在事务就抛出异常,否则就已事务方式运行。

如何处理高并发情况下具有竞争关系的数据库资源

秒杀系统数据库减压方法;

节流:仅让能成功抢购到商品的流量(可以有一定余量)进入我们的系统。

削峰:将进入系统的瞬时高流量拉平,使得系统可以在自己处理能力范围内,将所有抢购的请求处理完毕。