上一篇主要分析了数据库表结构这块,这一篇就直接分析解决方案这块吧。主要分为3大块,分别为夺宝整体流程,缓存流程,定时任务流程。

  一、夺宝整体流程

  

   备注:A、普适性流程。

     B、目前是单站点,IIS服务器,对IIS进行了优化,参考链接:http://www.cnblogs.com/xiongnanbin/p/3676350.html。

     C、后面会设Ngnix专题,也就是后面会用Ngnix做负载均衡代理服务器,不过在这之前可以用多域名来实现负载均衡。

  二、缓存流程

  

  备注:A、缓存采用memcached1.4.13版本。

       B、运用其CAS特性,内部实现锁机制,无需外部加锁。主要是防止并发时,且剩下最后几注号码,多人抢注。单最后只会允许有一人成功。

       C、购物车数量、下单数量等全部从缓存中拿。

D、首页列表需要展示商品可用夺宝数、剩余夺宝数。对于这种实时性高的数据,采取缓存1分钟。等到购物车或者下单会重新判断数量是否充足。

       E、类似秒杀,这里没有采取排队机制,而是锁机制。系统允许有人在下单时失败,这种情况除了缓存之外,就是多人同时修改缓存数据,CAS版本号不一致。

ps:所有的被发送到memcached的单个命令是完全原子的。如果您针对同一份数据同时发送了一个set命令和一个get命令,它们不会影响对方。它们将被串行化、先后执行。即使在多线程模式,所有的命令都是原子的。然是,命令序列不是原子的。如果首先通过get命令获取了一个item,修改了它,然后再把它set回memcached,系统不保证这个item没有被其他进程(process,未必是操作系统中的进程)操作过。

  memcached 1.2.5以及更高版本,提供了gets和cas命令,它们可以解决上面的问题。如果使用gets命令查询某个key的item,memcached会返回该item当前值的唯一标识。如果客户端程序覆写了这个item并想把它写回到memcached中,可以通过cas命令把那个唯一标识一起发送给memcached。如果该item存放在memcached中的唯一标识与您提供的一致,写操作将会成功。如果另一个进程在这期间也修改了这个item,那么该item存放在memcached中的唯一标识将会改变,写操作就会失败。

  三、定时任务

  

  备注:A、这里采用了Sql2008的代理任务实现定时任务,其实还是蛮方便的。

     B、后面移植到专门的服务托管框架中去,让数据库尽量不参与业务逻辑运算,也就是数据库只负责数据存储。

转载于:https://www.cnblogs.com/wucj/p/5002375.html

一元夺宝项目设计(下)相关推荐

  1. Android 仿网易一元夺宝客户端下拉加载动画实现(一)

    上上周写的一个demo,仿照网易一元夺宝的下拉刷新效果. 原效果是(第一部分)一个小太阳拉下来,然后松开回弹上去, (第二部分)再掉下来一个硬币进行中轴旋转. 本文实现的效果的是第一部分的,效果演示图 ...

  2. 一元夺宝项目设计(中)

    接上一篇,整个一元夺宝中主要分为商品(后台.前台).夺宝订单.夺宝期.开奖4大模块,如下图: 一.商品模块 对于商品这块区分前台与后台的理由是: A.后台主要是管理商品的基本属性参数,例如ID.名称. ...

  3. 一元夺宝项目设计(上)

    听说网易的一元夺宝项目一天的现金流水就达到了1个亿,老板听说有这回事,就着手让我这边逆向一个自己的一元夺宝.既然是老板钦定的项目,必须要积极的应对,不过对于外界传言一天一个亿的流水,写个爬虫抓取他们家 ...

  4. 【程序哥】分析 网易一元夺宝是否有作弊空间,真像媒体所说的吗?

    最近网易 一元购 报道了不好负面消息.有人去网易大楼维权,咱先不说一元购的道德法律是层面.就从技术方面分析一下,一元购真像媒体所说的吗?是否有作假的空间. 网易1元夺宝的中奖机制公平吗? 在网易一元夺 ...

  5. 一元夺宝--夺宝模块 开发笔记(一)

    本博客为个人开发笔记,未经本人同意不允许转载! 一.开发思想: 一元夺宝的数据结构中以夺宝实体为主在夺宝实体下挂有商品实体每期夺宝都有一个唯一的id号来进行标记,在所开的每期夺宝中包含有被夺宝的商品. ...

  6. 游戏开发笔记(一):一元夺宝

    说说近期开发的一元夺宝新功能,和网易一元夺宝功能类似,大概规则是,每个玩家出一块钱买一个很贵的道具,然后系统会从这些出一块钱购买的玩家中中随机出来一个人获得道具,和网易不一样的是每一组商品次数没有购买 ...

  7. 为什么那么多人想开发一元夺宝类app?

    别拿你的无知和愚蠢,来证明主观的判断! 国人对一切事物具有怀疑的本性是好的, 但是若不建立于科学的分析方法, 那就是愚昧! 身边有朋友玩夺宝投入较多,产出较少,于是向我求助.想从数据分析的角度知道到底 ...

  8. 国内一元夺宝行业兴起 需理性区别对待

    今年是中国接入国际互联网的第22个年头.20多年来,互联网服务的不断创新变革,以前所未有的深度和广度迅速融入社会方方面面,改变着大众的消费和生活方式. 这其中最典型的写照,莫过于电子商务的渗透发展,团 ...

  9. 一元夺宝系统整体架构概览

      系统介绍 一元夺宝项目,前段时间非常火:出现了很多夺宝平台,最近由于市场的监管,确实少了很多:夺宝模式其实非常简单,类似于彩票:就跟有个段子说的:大家每人给我发10元,每满50元将抽出一名幸运用户 ...

最新文章

  1. MySQL SQL模式(Mode)
  2. https refused 解决方法
  3. 简单的Http请求数据保存到Hdfs
  4. maxvalue mysql自动分区_创建mysql表分区的方法
  5. Python 小白从零开始 PyQt5 项目实战(5)布局管理
  6. 关于index.html被缓存问题
  7. 从Graalvm性能测试结果看选择JVM和native-image的策略
  8. TokenInsight:反映区块链行业整体表现的TI指数较昨日同期上涨6.21%
  9. qstandarditem判断是否单击在checkbox内_Tiktok运营,如何判断有人查看了您的TikTok个人资料...
  10. Loadrunner11之VuGen常用函数lr_user_data_point(一)
  11. 数字化转型投入大、效果差,永洪BI如何帮助企业迈出数据应用第一步
  12. ASO关键词排名的三种优化方式,aso关键词排名优化是
  13. dell服务器硬件参数提升速度,DELL R620服务器配置
  14. 禅与摩托车维修艺术,又名万里任禅游
  15. NOI 3255:十进制到六进制
  16. 金蝶 EAS 编码规则 新增显示且不允许断号
  17. RabbitMQ 安装 rabbitmq-plugins 报错
  18. 报错:The media could not be loaded, either because the server or network failed or ...
  19. 建置 Silverlight 1.0 開發環境
  20. HTML三种引入样式的方式

热门文章

  1. Windows10——Diskgenius分区把c盘扩大操作方法(C盘扩容)
  2. G1-Card Table和Remember Set
  3. Nginx配置Linux服务器图片访问路径
  4. ACS AD 和本地验证SSL ***
  5. Android:电话接听
  6. android oreo小米推送,去年年底终于履行承诺:小米A1现已吃上奥利奥
  7. 百度数据仓库palo使用总结
  8. 一个有趣的numpy题目------不同包里面的重名函数
  9. 深入解析 multipart/form-data
  10. 简爱酸奶逆势获C轮融资:德弘资本领投 广州金控跟投