分摊算法
1. 什么是分摊分摊算法主要适用于需要将 总量(如金额、资源、费用、收益)按某种规则分配给多个部分的场景。 为了更好地理解“分摊”概念,可以通过一个常见的电商购物场景来说明。假设有一个满减优惠活动:满20元减10元。你凑单购买了两件商品, 最终实付20元,每个商品各自的实付金额计算过程如下 计算每个商品的支付占比 计算实付金额 商品 单价 数量 分摊比例(四舍五入,2位精度) 实...
1. 什么是分摊分摊算法主要适用于需要将 总量(如金额、资源、费用、收益)按某种规则分配给多个部分的场景。 为了更好地理解“分摊”概念,可以通过一个常见的电商购物场景来说明。假设有一个满减优惠活动:满20元减10元。你凑单购买了两件商品, 最终实付20元,每个商品各自的实付金额计算过程如下 计算每个商品的支付占比 计算实付金额 商品 单价 数量 分摊比例(四舍五入,2位精度) 实...
SafeInventory-本地事务下,如何安全操作库存 SafeInventory-分布式事务下,如何安全操作库存 在以上2篇文章中,已经详细说明了 本地事务下通过数据库乐观锁、数据库悲观锁、分布式锁 实现安全扣减库存 分布式事务下,通过预扣库存方案 实现安全扣减库存以上所有方案,其处理逻辑均依赖于数据库, 在高并发场景下会遇到 DB 层面带来的性能瓶颈。 面对数据库带来的性能瓶颈问题...
在SafeInventory-分布式事务下,如何安全操作库存,一文中已经详细说明在本地事务下如何安全操作库存。 本文将继续讨论在分布式事务下, 如何安全操作库存。 在购物场景下,库存扣减是一个典型的分布式事务,通常涉及三个系统:订单系统、库存系统和支付系统。其交互流程如下: 订单系统请求扣减库存:在用户下单时,订单系统首先向库存系统请求扣减库存,只有在确认有足够库存的情况下,订单才会创建成...
库存是许多业务场景中都会涉及的概念,比如购物场景中的商品库存,以及营销场景中的优惠券库存。不同的业务场景有各自的交互流程,后端设计也会随之不同。 购物场景:用户必须完成支付才能真正拥有商品。因此,库存的扣减需要与支付流程紧密结合,并与其他系统交互协调,确保在支付成功后才正式扣减库存。 营销场景:用户通常只需点击领取按钮即可获得优惠券,而不需要支付。这种情况下,库存的扣减操作可以通过一个简...
1. 什么是幂等在系统设计中,“幂等”是一种非常重要的概念。 幂等性(Idempotency)指的是一个操作无论执行多少次,其结果都应保持一致,和只执行一次的结果相同。 这在分布式系统、网络请求和服务接口中尤为重要,因为它可以确保系统的数据一致性。 2. 为什么会出现重复请求重复请求在系统设计中是一个常见的问题,尤其是在高并发和分布式环境中。 出现重复请求的原因有多种,包括用户操作、业务逻辑...