
典型业务场景
iloveoverfly
年轻人不讲code德
展开
-
如何使用MyBatis的plugin插件实现多租户的数据过滤?
在中台服务,或者saas服务中,都会因为存在不同的租户的入驻,需要保证不同租户的数据隔离。通常的解决方案,是将数据存在同一个数据库,然后,使用租户的标识为所有的业务数据做数据隔离。如果采用此种方案,如何快速的在数据中间层做数据隔离呢? 我使用了mybatis的plugin插件机制,对query操作进行拦截实现数据的过滤。大致的流程如下: ...原创 2020-06-11 20:38:41 · 10872 阅读 · 1 评论 -
商品库存的扣除过程中如何防止超卖?
在商品购买的过程中,库存的抵扣过程,一般操作如下: select根据商品id查询商品的库存。 根据下单的数量,计算库存是否足够,如果存库不足则抛出库存不足的异常,如果库存足够,则减去扣除的库存得到最新的库存剩余值。 set设置最新的库存剩余值。 上述过程的伪代码如下: // 根据商品id获取商品剩余库存 select stock_remaing from stock_table wher...原创 2020-04-16 23:16:02 · 12026 阅读 · 3 评论 -
秒杀场景之双11双12商品促销实现方案
场景介绍 在双十一和双十二进行酒类产品销售时,场景类似于秒杀业务场景,在短时间内,有大量用户进行抢购。用户根据自己拥有的购酒资格进行抢购,在此轮抢购中,实时查看剩余可以购酒的瓶数,抢购成功,则完成后续的支付操作。 实现方案 多级缓存 用户频繁的操作就是频繁的查询购买的商品。对于促销商品和价格的信息,提前预制到redis缓存,失效时间通常设置为24小时。对于用户信息缓存,使用本地缓存,通常设置失效...原创 2020-03-31 22:32:21 · 5840 阅读 · 0 评论