gpt4 book ai didi

nhibernate - 分布词中的序号

转载 作者:行者123 更新时间:2023-12-04 02:10:04 25 4
gpt4 key购买 nike

我们正在构建订单处理系统。我们有一个处理服务器集群。我们需要为订单分配可读的编号(例如 ORD-000001、ORD-000002)。

主要问题是我们很难实现系统范围的锁。我正在考虑锁过期的模式。但是凡事想起来还是有瓶颈。

我们正在接近 DDD,因此很难直接访问数据库。我们正在使用 NHibernate。我们使用 UnitOfWork。

请帮忙出出主意。每个想法都将是有值(value)的。是否有指向相关主题的链接?

更新:我想强调,我需要序号。因此不能使用高/低算法。此时我正在调查

  1. 我分配“可能不错的数字”;
  2. 推送到数据库;
  3. 如果失败,尝试分配另一个“可能好的数字”;
  4. 如果成功,提交;

但我找不到适合它的技术。

最佳答案

您是否试图确保所有订单都有唯一编号,但没有协调编号分布的中心位置?

这里有两种选择。

  1. 假设您希望在任何实际时间段内最多拥有十台服务器。让每个服务器分发 ORD-XXXXXN 形式的序号。 N 是服务器的编号。所以服务器 0 发出 ORD-000000、ORD-000010、ORD-000020 等。服务器 6 发出 ORD-000006、ORD-000016、ORD-000026 等。

  2. 分发数字 block ,一次 10000 个。每个服务器都用完一个 block 中的所有数字,然后从某个地方在后台运行的小型服务器中检索更多。小服务器只是遍历所有 block ,一个接一个,一次一个地传递出去。第一个分发的 block 是0-9999,第二个是10000-19999,第三个是20000-29999,依此类推。

关于nhibernate - 分布词中的序号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1456517/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com