|
|
1
1
你应该考虑实现两大改变:
使用#1,您不必再处理ConcurrentModificationException。修改实体只涉及一个组件或服务。 第二个组件或服务仅在单独的上下文中读取实体。所有实体必须是不变的,以避免实施事故。 两者都需要一个契约或接口(在一般意义上,不是Java接口),这将把你带到#2。一旦发生更改,只读上下文中的任何加速技巧都必须刷新缓存或重新读取/合并更改。根据 CAP-theorem 你必须牺牲三者中的一个,这取决于你喜欢的一致性策略。由于没有关于写入、实体和读取约束数量的提示,我无法给出更详细的建议。 如果我现在必须实现它,那么至少有3个模块(Java 11/Jigsaw):
读卡器模块还可以在启动时读取数据库,并使用编写器生成的事件。这些事件将是某种命令,在读卡器模块的内存中更改,而不是从数据库中重新读取。因此,您可以通过简单的内存缓存和一些事件建模来完全取消Hibernate。通过使用BlockingQueues和ConcurrentHashMap(作为缓存),这仍然可以在单个JVM中工作。简单的JDBC足以引导您的模型。 如果通过深度复制和一点线程就这么简单的话。其他人也会这样做。由于有很多关于并发持久性的模型、策略和模式,我建议重构。 |
|
|
user29759326 · 如何返回递归函数中的最后一个值? 1 年前 |
|
|
malife89 · 将java中的字符串读取为正确的日期格式 1 年前 |
|
|
Tim · 在java中,有没有更快的方法将字节数组写入文件? 1 年前 |
|
|
rudraraj · java中未声明最终变量 1 年前 |
|
|
Bala Ji · 以下BFS的实施效率如何? 1 年前 |