上一篇主要分析了数据库表结构这块,这一篇就直接分析解决方案这块吧。主要分为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. MyBatis 注释
  2. linux线程超过1024报错,Linux定位c++程序运行异常的经历《实操》
  3. 2015年京东面试题
  4. 前端渲染引擎doT.js解析
  5. Ubuntu中的密钥环密码与登陆密码不同
  6. oracle change schema,使用pt-online-schema-change修改主键时注意
  7. SVN 服务器的安装和配置(Gentoo)
  8. 科研|我最煎熬的学术时刻,是耗时3年完成了一篇论文
  9. vue - (引入jq)
  10. N76E003的学习之路(一)
  11. FPGA实现VGA显示(一)——————屏幕驱动及color_bar显示
  12. ubuntu日常使用指南
  13. C 标准库中输出到字符串、到文件的相关函数
  14. python画椭圆形_Python易学就会(五)turtle绘制椭圆与递归
  15. MIT 18.01 Single Variable Calculus(单变量微积分)课堂笔记【6】——近似和求最值
  16. C++设计模式 - 单例模式(Singleton)
  17. macos13 Ventura虚拟机安装无网络问题
  18. Java Z 字形变换
  19. leetcode中的一些骚操作
  20. python之函数Type hinting

热门文章

  1. 流放者柯南自建服务器 linux,流放者柯南自建服务器教程 怎么创建自己的服务器-游侠网...
  2. 通用型和事件型漏洞区别
  3. SCSS--SCSS 常用属性合集
  4. 开关sw在matlab中,在使用MATLAB“绘图”选项卡中的命令按钮绘图之前,需要( )。...
  5. C++的学习心得和知识总结 第十二章(完)
  6. 初学 Java 设计模式(十五):实战命令模式 「扫码点餐」
  7. MybatisPlus快速开发-代码生成器
  8. 基于sql net客户服务关系管理企业信使企信通
  9. ZZNUOJ_用Java编写程序实现1527:简单加法(附源码)
  10. XY310 4G 安卓智能核心板(虎贲T310平台)