在电商系统常见的一个业务场景就是对商品数量的控制,十件商品不能卖给十一个用户,作为分布式系统对商品总量的计算就需要原子性控制。
锁粒度时间越少的系统能提供的系统能够并发容量也越大,数据的正确性控制也越好,所以基于远程服务的锁性能一定没有本地锁的好,原子性的控制也更差。但是本地化的原子性控制存在一个明显的短板,就是一台机器的容量是有限的,如果分布式系统基于一台服务器做原子性控制,那么系统性能的瓶颈将非常明显,也非常危险。
将需要原子性控制的数据横向拆分在多台服务器时一个相对好的选择,不过由于原子性控制的本质,这个做法只能提高并发容量,无法做到原子性控制集群的高可用。其中一台服务器党宕机时数据的损失不容易即时恢复。采用原子性集群还有一个问题既是数据倾斜的问题,但是采用请求路由均衡的方式可以较好的解决这个问题。
redis本身的原子性控制机制已经不错,但有个前提就是并发量不能突破redis的相应阈值,而且由于redis制定时远程化服务,并且单点,在极高并发量下不是一个好的选择。
【无中生有】---15---分布式业务系统原子性控制
最新推荐文章于 2023-08-13 17:17:19 发布