高并发系统如何做性能优化?如何防止库存超卖?

本文探讨了如何优化高并发系统的性能,包括使用缓存、数据库查询优化、使用静态页面等方法。同时,提出了防止库存超卖的策略,如悲观锁、分布式锁和乐观锁,并强调了在高并发场景下避免数据库锁的选择。总结中指出,乐观锁、缓存锁和分布式锁是更好的解决方案。
摘要由CSDN通过智能技术生成

高并发系统性能优化:

优化程序,优化服务配置,优化系统配置

1.尽量量使用缓存,包括用户缓存,信息缓存等,多花点内存来做缓存,可以大量量减少与数据库的交互,提高性能。

2.用jprofiler等工具找出性能瓶颈,减少额外的开销。

3.优化数据库查询语句句,减少直接使用hibernate等工具的直接生成语句句(仅耗时较长的查询做优化)。

4.优化数据库结构,多做索引,提高查询效率。

5.统计的功能尽量量做缓存,或按每天一统计或定时统计相关报表,避免需要时进行行统计的功能。

6.能使用静态页面的地方尽量量使用,减少容器的解析(尽量量将动态内容生成静态html来显示)。

7.解决以上问题后,使用服务器集群来解决单台的瓶颈问题。

防止库存超卖:

1、悲观锁:在更更新库存期间加锁,不不允许其它线程修改;

  • 1、数据库锁:select xxx for update;

  • 2、分布式锁;

2、乐观锁:使用带版本号的更更新。每个线程都可以并发修改,但在并发时,只有一个线程会修改成功,其它会返回失败。

  • 1、redis watch:监视键值对,作用时如果事务提交exec时发现监视的监视对发生变化,事务将被取消。

3、消息队列列:通过 FIFO 队列列,使修改库存的操作串串行行化。

4、总结:总的来说,不不能把压力力放在数据库上,所以使用 “select xxx for update” 的方式在高并发的场景下是不不可行行的。FIFO同步队列列的方式,可以结合库存限制队列列长,但是在库存较多的场景下,又不不太适用。所以相对来说,我会倾向于选择:乐观锁 / 缓存锁/ 分布式锁的方式。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值