电商抢购、秒杀活动浅析
2015-10-22 16:37 只喝牛奶的杀手 阅读(5556) 评论(9) 编辑 收藏 举报电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于Web系统是一个巨大的考验。当一个Web系统,在一秒钟内收到数以万计甚至更多请求时,系统的优化和稳定至关重要。这次我们会关注秒杀和抢购的技术实现和优化。
大型电商抢购,肯定有好多牛逼技术,负载均衡,南北镜像。。。等等,我只是写一个我遇到的一个抢购业务的处理方法,希望能抛砖引玉!
先上流程图:
现在电商网站某个抢购活动,并发怎么办?消息队列
AMQP,即Advanced Message Queuing Protocol,高级消息队列协议,是应用层协议的一个开放标准,为面向消息的中间件设计。消息中间件主要用于组件之间的解耦,消息的发送者无需知道消息使用者的存在,反之亦然。
AMQP的主要特征是面向消息、队列、路由(包括点对点和发布/订阅)、可靠性、安全。
RabbitMQ是一个开源的AMQP实现,服务器端用Erlang语言编写,支持多种客户端,如:Python、Ruby、.NET、Java、JMS、C、PHP、ActionScript、XMPP、STOMP等,支持AJAX。用于在分布式系统中存储转发消息,在易用性、扩展性、高可用性等方面表现不俗。有玩RabbitMq的哥们,多多交流!
用户请求会post到后台一些信息如(用户信息,商品信息)到消息队列中。
消息队列通过Windows服务去处理解析过来的信息,单线程处理(多线程可能会出现问题,你懂得)!
成功的话,插入到本次活动的成功记录表里面;失败的话,插入到有意购买表(方便业务人员销售)!
怎样通知用户?
1,ajax异步去请求(隔两分钟去请求一次成功记录,如果不请求库的话我们会用Redis缓存)
2,长连接的方式(websocket,signalr之类的)
总之想做好抢购之类的业务,路漫漫其修远兮,希望大神们多多指导!
欢迎大家关注微信号killerhub,微信公众号名称:只喝牛奶的杀手, 扫下面的二维码或者收藏下面的二维码关注吧(长按下面的二维码图片、并选择识别图中的二维码)
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· go语言实现终端里的倒计时
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· 周边上新:园子的第一款马克杯温暖上架
· 分享 3 个 .NET 开源的文件压缩处理库,助力快速实现文件压缩解压功能!
· Ollama——大语言模型本地部署的极速利器
· DeepSeek如何颠覆传统软件测试?测试工程师会被淘汰吗?
· 使用C#创建一个MCP客户端