求助大神!

miomiss 2018-09-22 04:10:36
求助各位大神一个问题:

库存子系统的Mysql(或Oracle)数据库里有张库存表
ID 商品ID 仓库ID 仓库库存量 累计卖出量
1 Sku001 Store001 10000 129
2 Sku002 Store001 13000 750
功能性需求:当前store001的多个的商品在做抢购业务,需要您在库存子系统里设计一个库存扣减的服务API给订单子系统使用,当订单创建时,实时调用库存扣减的API,更新库存表的累计卖出量,如果累计卖出量超出仓库库存量,则库存扣减失败。
非功能性要求:
1)库存子系统采用10个节点的集群方式部署,有多个Java进程对外提供库存扣减API,需要解决并发修改数据的脏读和脏写的问题
2)库存扣减API需要实现幂等性,当订单模块多次相同的报文请求库存扣减时,只扣减一次,重复扣减的报文请求返回扣减成功。
3)库存子系统的每1个APP部署节点,需要达到1000TPS的库存扣减的性能要求(1秒内完成1000笔库存扣减)
部署硬件清单:
1) Mysql部署的虚拟机 8C 64G 1台
2) java应用部署的虚拟机2C 4G 10台
3) eureka服务发现服务器共用,订单子系统从eureka拿到库存子系统的10个节点的IP地址清单后,采用轮询IP的方式调用库存子系统的API
4) 不能再使用memcached或redis等其他第三方软件
针对以上的要求,请给出库存扣减的服务API的核心设计思想(10分)和API接口定义(10分)及代码实现概要

请大神赐教,谢谢了
...全文
544 回复 打赏 收藏 转发到动态 举报
写回复
用AI写文章
回复
切换为时间正序
请发表友善的回复…
发表回复

50,526

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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