javaweb 集群数据同步

有事没事别扯蛋 2015-04-22 05:35:59
场景:并发,集群
场景模拟: 先有3台web容器(tomcat)进行集群,并发处理。
业务:
现在有一个id 为101 的商品, 商品数量只剩下一个。当商品数量==0 的时候,这个商品不能进行购买!
goods : {'id',101,'count',1};

同时有多个(这里就假如有2个A和B)用户请求购买buy.action?id=101

理想结果: 请求购买的时候 我需要在商品数量不够的时候 不予以购买,

Goods g = new Goods(101,1);//查询到的对象, ()并发A 和 B 拿到的数据是一样的 他们的剩余数量都是1
if(g.getCount() <= 0) {
//不执行 下单
return;
} else{
//下单
}。
// 情况就在这里 两个都能去下单肯定是不正确的,
如果我加入同步锁, 效率低, 就算我加入同步锁,集群情况下,还是不行,

求大神指导 解决方案!!(菜鸟的的痛苦)


...全文
205 3 打赏 收藏 转发到动态 举报
AI 作业
写回复
用AI写文章
3 条回复
切换为时间正序
请发表友善的回复…
发表回复
淡定的峰哥 2015-04-22
  • 打赏
  • 举报
回复
最后一步校验 提交订单的时候 异步提交到一个队列服务器 服务器串行处理
  • 打赏
  • 举报
回复
引用 1 楼 t_jl1979 的回复:
下单的时候必然用锁进行同步。
如果用锁 进行同步, 我考虑到2个情况,1. 怎么同步, 如果直接同步的话,是不是不管是不是购买101这个商品都是同步等待,效率不够,2. 如果是集群呢,
冥王之锤 2015-04-22
  • 打赏
  • 举报
回复
下单的时候必然用锁进行同步。

67,549

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧