java - 是否有针对此问题的分布式软件和一个后端数据库的良好模式?

标签 java design-patterns distributed-computing

我正在寻找一个高级答案,但这里有一些细节以防它有帮助,我正在将 J2EE 应用程序部署到 WebLogic 中的集群。后端有一个 Oracle 数据库。

应用程序的正常流程是
- 用户向应用程序提供数据(以行形式插入)
- 应用程序等待数据达到一定大小并批量插入数据库(仅 1 次提交)

数据库中有一个限制,防止“重复”数据插入。如果应用程序违反了约束,它将不得不一次回滚并重新插入一行,因此可以“重命名”并插入重复的行。

假设我有 2 个正在运行的应用程序实例。每个实例都将插入 1000 行。即使只有 1 个重复项,一个实例也必须回滚并逐行插入。

我可以很容易地看出,在这种情况下,将不冲突的 999 行作为批处理重新插入会更聪明,但如果我有 3 个正在运行的应用程序并且这 999 行也有重复的机会怎么办?

所以我的问题是:是否有针对这种情况的设计模式?

这是一个很长的问题,所以请让我知道在哪里澄清。感谢您的宝贵时间。

编辑: 每个实例的 1000 行数据都在内存中,但它们看不到彼此的行。他们知道某行是否重复的唯一方法是将其插入数据库。

如果当前的应用程序设计没有意义,请随时提出解决此问题的更好方法。我将不胜感激。

最佳答案

关于java - 是否有针对此问题的分布式软件和一个后端数据库的良好模式?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4187899/

相关文章:

java - 在 Java/Android 中使用多个值生成 SHA 256 哈希

java - 重新上传后 Filenet 文档属性未修改

java - 如何进行CRC64分布式计算(利用其线性特性)?

hardware - 分布式 Z3 和每个节点的最佳硬件

java - 从 JPanel 中删除 JPanel - 仅适用于其自己的类

java - 我如何从java调试器(或任何其他方法)读取信息

asp.net-mvc - 使用存储库 + 工作单元模式选择查询

java - 最终静态与非最终静态变量?

c++ - Meyers 的单例实现实际上是如何实现单例的

distributed-computing - IPFS 和超驱动器之间有什么区别?