繁体   English   中英

设计实时产品库存管理

[英]Design Real-Time Product Stock Management

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

这是引擎应该处理的一些功能:

  1. 库存进货产品
  2. 订单准备
  3. 将产品从一个地方移到另一个地方
  4. ...

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

请注意,我的应用程序必须是实时的,准备者必须实时了解库存中有多少产品。 如果在拣选时缺少产品,他可以向操作员发送“请求”。

使用SQL数据库。 它们在设计时已经考虑了数据完整性,并发性和数据存储。

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

好了,您提到的情况通常是必须使用队列而不是持久性存储来满足吞吐量需求。 在网上搜索时,您可以找到许多案例研究,同样,人们使用排队系统来提高系统的吞吐量。 SQL Server不能扩展到该级别。

在特殊情况下,当您需要使队列持久化时,会使用非常特殊的方法来减轻性能影响,因此。 对于前。 Apache的ActiveMQ拥有自己的特殊文件存储系统,与仅使用MySQL进行后端持久化相比,其性能要好得多。 MSMQ可能也提供了类似的选项,但不确定。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM