首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >设计实时产品库存管理

设计实时产品库存管理
EN

Stack Overflow用户
提问于 2009-11-06 18:19:46
回答 3查看 533关注 0票数 0

我需要设计一个实时的产品库存管理引擎(C# & WCF),但我不知道如何处理并发访问和数据完整性。

下面是引擎应该处理的一些特性:

preparation

  • Move

  • 库存进货产品

  • 从一个地方订购

  • 产品到another

  • ...

可以使用MSMQ以确保正确的库存计数(消息池按顺序处理的消息),也可以使用应用程序线程锁定。

请注意,我的应用程序必须是实时的,预制者必须实时知道有多少产品有库存。如果在挑选时缺少产品,他可以向运营商发送“请求”。

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2009-11-06 19:30:00

正如Lee所说,您可能应该使用SQL数据库。如果您使用事务来存储订单并减少可用的产品数量(都在同一事务中),数据库将保证原子性。您可能还希望使用某种并发机制(如行版本)来防止不一致的值(第一个进程读取、第二个进程更新相同的值,然后第一个进程更新太过覆盖基于过时值的前一个更新)。

票数 1
EN

Stack Overflow用户

发布于 2009-11-06 19:06:55

使用SQL数据库。它们的设计考虑到了数据的完整性、并发性和数据存储。

票数 2
EN

Stack Overflow用户

发布于 2009-11-19 19:23:10

您所提到的场景通常是必须使用队列而不是持久存储来满足吞吐量需求的场景。在网上搜索时,您可以找到许多案例研究,其中人们使用排队系统来提高系统的吞吐量。SQL server不能扩展到这个级别。

在特殊情况下,当您需要使队列持久时,将使用非常特殊的方法来减轻性能影响。为了前夫。Apache的ActiveMQ有自己的特殊文件存储系统,它的性能比简单地使用MySQL进行后端持久性要好得多。也许MSMQ也提供了类似的选项,但我不确定。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/1689375

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档