秒杀系统api的设计架构

秒杀方案:

原子计数器   redis/mysql  redis 集群

记录行为   分布式MQ-rabbitMQ

消费消息并落地  mysql

运维成本和稳定性:NoSQL MQ 

开发成本:数据一致性,回滚方案等。

幂等性难保证:重复秒杀问题。

不适合新手的框架。

=======

为什么不用mysql mysql低效

测试-

同一条mysql update  压力测试 4w qps 每秒4万次。

优化方向 减少行级锁的持有时间。

update确认影响记录数

优化思路:

把客户端逻辑放到mysql服务端,避免网络延迟和GC影响。

定制sql方案:

 

  • update /*+[auto_commit]*/,需要修改MySQL源码
  • 使用存储过程:整个事物在MySQL端完成。

优化总结:

前端控制:暴露接口,按钮防重复。

动静态数据分离:cdn缓存,后端缓存。

cdn--api像cdn推送数据和页面等。

事务竞争优化-减少事务锁持有时间。有网络延迟和GC,改成MYSQL处理。

 

转载于:https://my.oschina.net/u/1037605/blog/810709

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值