tanhao09
tanhao09
采纳率0%
2017-07-20 03:57

两台服务器启动抽奖程序,如何控制并发?

情况是有两台服务器同时运行程序,然后是一个抽奖程序,奖品的数量是有限制的(每一种奖品每天发放多少,一共发放多少都是有数的超过就不在发放,剩下的概率为零).
1.怎么样避免数据重复插入
2.怎样避免多发或者少发
因为以前出现过类似的情况,能力有限,所以希望有一个好的解决办法?请帮忙梳理一下流程

  • 点赞
  • 写回答
  • 关注问题
  • 收藏
  • 复制链接分享
  • 邀请回答

4条回答

  • zy841958835 cloudyzhao 4年前

    比如你抽奖的奖品是一个集合a 你每天早晨就把a分为两个子集合b c 且b&c=a 服务器1抽奖的时候从b中选择数据 服务器2抽奖的时候从c中选择数据
    晚上的时候把b c剩下的合并起来成为第二天的a
    当然这个同步时间 你可以自由选择 一天 或者一个小时

    点赞 1 评论 复制链接分享
  • Sun1956 Sun1956 4年前

    放进消息队列?用消费者-生产者模式

    点赞 1 评论 复制链接分享
  • u014639382 叶之秋 4年前

    可以用多线程处理
    在抽奖的方法上加上synchronized同步关键字

    点赞 评论 复制链接分享
  • zy841958835 cloudyzhao 4年前

    两种解决方向:
    1.分布式 每天将数据平均分到两个服务器 使得两台服务器的数据没有交叉 晚上在归并 第二天再平均分发
    2.将数据放在一台服务器上,加同步锁即可

    点赞 评论 复制链接分享

为你推荐