【问题标题】:Persistance Queue Implementation持久队列实现
【发布时间】:2011-02-21 12:16:51
【问题描述】:
【问题讨论】:
标签:
java
multithreading
design-patterns
oop
persistence
【解决方案1】:
这种模式有几个名字(例如 Backing Store、Write-Behind 等......)。这在数据网格/缓存技术以及其他技术中很常见。通常,域对象存储在某种 FIFO 或优先级队列中,然后调度程序在备用线程或进程上将它们出列,并将它们传递给您的真实 DAL。队列可以在内存中,也可以实际放置在诸如 ActiveMQ 或 MSMQ 之类的网络队列中。此外,我还看到了每种类型的数据库操作都有单独的队列的场景。
在许多情况下,这被实现为代表相同接口的 DAL 前面的外观。通过这种方式,其他应用程序认为它们正在与“真正的”DAL 进行通信,并从其他相关问题中抽象出来。这种解耦允许您在需要时对其进行更改。当对象数据被提交到外观时,数据被排入队列,然后控制权返回给调用应用程序。
排队后,您可以进行批量更新/插入或继续一次处理一个项目。请记住,交易的概念具有非常不同的含义,因此您需要仔细考虑。
虽然有一些技术可以做到这一点......这更像是一种模式而不是单一技术。我没有方便的示例,但您可以查看 Oracle Coherence 等产品的数据网格文档。寻找后备商店。