通向往架构师之路之 用简单的代码写复杂的逻辑--基础知识运用

业务:

   先写操作,然后读取相关数据判断操作完后是否符合某种条件。

   或者先读判断,如果可以进行写操作

代码实现:

                      1. 一般的代码,先进行分布式锁控制。

   简单的代码 2. 用数据库锁cas

举个例子:

       一笔订单只能支付一次。

      当第二笔支付返回时应该退款。


       错误代码:判断之前无支付,修改支付状态,修改订单状态。如果有支付走退款逻辑,

       一般代码:分布式并发锁,判断之前无支付,修改支付状态,修改订单状态。如果有支付走退款逻辑。

       精简代码:修改支付状态,cas修改订单状态。 如果没有修改成功,并且之前是已支付。走退款逻辑。

      不过还是推荐一般代码,因为压力再应用服务器。不过吞吐量肯定不如cas,因为是自旋而不是数据库单机的队列等待。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值