其他事务:
上面比如多是针对用户存储缓存,假如是公用的缓存数据需求注意一些问题,如:公用的缓存数据需求考虑并发下的可能会导致大量命中DB查询,能够运用管理后台更新缓存,或者DB查询的锁住操作。
以上比如是一个相对简单的高并发架构,并发量不是很高的状况能够很好的支撑,但是跟着事务的强大,用户并发量增加,我们的架构也会进行不断的优化和演化,比如对事务进行服务化,每个服务有自己的并发架构,自己的均衡服务器,分布式数据库,NoSQL主从集群,如:用户服务、订单服务。
2)消息行列
秒杀、秒抢等活动事务,用户在瞬间涌入发生高并发恳求。
场景:守时收取红包等。
阐明:
场景中的守时收取是一个高并发的事务,像秒杀活动用户会在到点的时刻涌入,DB瞬间就接受到一记暴击,hold不住就会宕机,然后影响整个事务;
像这种不是只要查询的操作并且会有高并发的刺进或者更新数据的事务,前面提到的通用计划就无法支撑,并发的时候都是直接命中DB;
规划这块事务的时候就会运用消息行列的,能够将参加用户的信息添加到消息行列中,然后再写个多线程程序去耗费行列,给行列中的用户发放红包;
计划如:
守时收取红包;
一般习气运用 redis的 list;
当用户参加活动,将用户参加信息push到行列中;
然后写个多线程程序去pop数据,进行发放红包的事务;
这样能够支持高并发下的用户能够正常的参加活动,并且避免数据库服务器宕机的危险。
附加:经过消息行列能够做许多的服务。
如:守时短信发送服务,运用sset(sorted set),发送时刻戳作为排序依据,短信数据行列根据时刻升序,然后写个程序守时循环去读取sset行列中的第一条,当时时刻是否超过发送时刻,假如超过就进行短信发送。
以上就是我们的今天共享,希望对大家有所帮助。