• 电商抢购、秒杀活动浅析


    电商的秒杀和抢购,对我们来说,都不是一个陌生的东西。然而,从技术的角度来说,这对于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之类的)

     总之想做好抢购之类的业务,路漫漫其修远兮,希望大神们多多指导!

  • 相关阅读:
    Python十大经典算法之选择排序
    在js中修改样式带 !important 的样式
    vscode 使用 ejs 语法有红色错误提示线
    mysql 报 'Host ‘XXXXXX’ is blocked because of many connection errors'
    字符编码
    Canal.adapter报错
    Windows 域控配置时间同步
    Docker清理日志脚本
    Docker快速部署clickhouse
    Windows批处理一键添加hosts文件
  • 原文地址:https://www.cnblogs.com/viaiu/p/4901438.html
Copyright © 2020-2023  润新知