- 博客(5)
- 收藏
- 关注
原创 关于.net高并发商品秒杀方案(RabbitMQ)
五、Rabbit事件总线写法: 引用CAP框架,使用RabbitMQ来管理消息队列替代redis,采用SQLServer进行本地消息表的存储进行发布和订阅压力测试:线程数为10,100,1000三种情况进行测试,Ramp-Up时间空,循环次数为1首先到NuGet包管理器中安装DotNetCore.CAP、DotNetCore.CAP.InMemoryStorage、DotNetCore.CAP.RabbitMQ、DotNetCore.CAP.SqlServer、Savorboard.CAP.InMem
2021-03-16 18:05:12 1256 1
原创 关于.net高并发商品秒杀方案(Redis+队列+Lua脚本)
五、Redis_lua: Lua是redis的轻量脚本语言,把部分需要在业务里实现的功能写在脚本然后嵌入到程序中,把它当作“存储过程”就比较容易理解了。其实我也不熟,就是来装一下。其实就是把上篇Redis+队列的“单品限流、购买次数的限制和方法幂等”写到lua里然后嵌入到程序中功能分析:减少网络开销,将业务放到脚本中执行脚本会做作为一个整体执行,不会插入其它命令脚本复用缺点是出错不会回滚Lua基础语法:基本结构,类似于js,前面声明方法,后面调用方法。参数通过ARGV[1]获取,Ke
2021-03-16 13:25:21 992
原创 关于.net高并发商品秒杀方案(Redis+队列)
四、Redis+队列:思路和服务器缓存+队列基本相同,使用Redis做缓存替代服务器缓存,Redis可以直接使用.net code进行管理也可安装RedisDesktopManager。业务流程:接口触发-> 通过Redis获取库存和新增随机订单号->利用后台任务进行查询数据->新增订单\扣除库存功能分析:Redis是单线程的,利用api自身的原子性,去除lock锁。Redis6.0支持多线程不在此次的讨论范围数据可以持久化解决服务器异常容易导致缓存里的信息丢失压力测试:线
2021-03-12 15:09:23 2065
原创 关于.net高并发商品秒杀方案(纯DB,lock,服务器缓存+队列)
今天由于时间关系上初稿,明天在调整新建GrabbingOrdersController.cs控制器,可以开始制作测试接口了Demo一共有8个接口,两个只做查询,纯db接口、lock锁、服务器缓存+队列、Redis+队列、Redis_lua、rabbit开始搬砖了Controllers文件夹新建控制器(api 控制器 空),引用日志接口和数据库连接类namespace MessageQueuing.Controllers{ /// <summary> /// 抢单
2021-03-11 18:06:32 974 1
原创 关于.net高并发商品秒杀方案
关于.net高并发商品秒杀方案由于工作原因一直没有接触过高并发的项目,近期根据网上的教程整理了一个关于高并发的demo。Demo只在开发环境下使用,未上生成环境。第一次写文章,有啥子不好的地方请纠正功能:商品抢购使用场景:商城类型网站或者小程序等开发工具:Visual Studio 2019、sql server2017、Jmeter、Visual Studio core、Nginx、RabbitMQ框架:.net 5+ef core+swagger数据库:sql server缓存框架:red
2021-03-09 10:05:25 1582 4
空空如也
空空如也
TA创建的收藏夹 TA关注的收藏夹
TA关注的人