首页 > 其他 > 详细

高并发

时间:2020-03-30 00:11:14      阅读:72      评论:0      收藏:0      [点我收藏+]

并发扣款,保证数据的一致性

方案:使用CAS解决,更新前确保原金额未改变

UPDATE t_account SET money=$new_money WHERE uid=$uid AND money=$old_money;

基于“值”的CAS乐观锁,可能导致ABA问题

方案:CAS乐观锁,由“值”比对优化成“版本号”比对

UPDATE t_account SET money=38, version=$version_new WHERE uid=$uid AND version=$version_old;

系统层面,秒杀业务的优化方向如何?

  • 将请求尽量拦截在系统上游,而不要让锁冲突落到数据库
  • 充分利用缓存,例如用redis加锁拦截掉90%的请求

如何提升系统的并发能力?

  • 垂直扩展
  • 水平扩展

什么是垂直扩展?

  • 增强单机硬件性能,例如:增加CPU核数如32核
  • 提升单机架构性能,例如:使用Cache来减少IO次数

什么是水平扩展?

  • 反向代理层可以通过“DNS轮询”的方式来进行水平扩展
  • 站点层可以通过nginx来进行水平扩展
  • 服务层的水平扩展,是通过“服务连接池”实现的
  • 数据库可以按照数据范围,或者数据哈希的方式来进行水平扩展

高并发

原文:https://www.cnblogs.com/sai564/p/12595477.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!