使用数据库作为通信总线时如何避免并发问题?

时间:2011-12-09 11:43:43

标签: database language-agnostic architecture concurrency database-agnostic

有些人告诉我,由于并发问题,我们应该避免多个应用程序读/写同一个数据库。他们坚持不懈地说服一个可靠的架构只允许一个应用程序访问数据库。我不知道这些问题是否来自READ操作并发,或者它们是否仅与WRITE操作有关。

我担心的是,对于某些系统来说,DB是一种优秀的通信总线,就像我正在开发的那样。是否有关于如何避免并发问题的指导原则?

1 个答案:

答案 0 :(得分:4)

(1)除非确实需要,否则不要将数据库用作通信总线。鉴于可用的开源消息排队系统,我怀疑你确实需要。

(2)如果你有一个事务数据库,那么并发读和写访问应该没问题,只要你的数据库有必要的约束和触发器来强制执行数据集成(并且所有应用程序都经过适当测试以确保到目前为止尽可能他们没有插入垃圾)。

(3)如果您不理解(1)或(2),则表示您尚未准备好将数据库用作通信总线。阅读有关数据库,并发和事务的内容。