具有多个进程的 SOA 与 Django ORM
Posted
技术标签:
【中文标题】具有多个进程的 SOA 与 Django ORM【英文标题】:SOA versus Django ORM with multiple processes 【发布时间】:2014-02-20 15:57:47 【问题描述】:我有一个 django 应用程序,它使用 Django-rest-framework 提供了一个 rest api。客户端按预期使用 API,但我还有另一个进程(在同一节点上)使用 Django ORM 读取应用程序的数据库,即 sqlite3。
使用 rest api 与应用程序的数据库进行交互(仅读取)的进程是否更好的架构?或者有比从同一个节点发出大量 HTTP 请求更好、或许更有效的方法吗?
ORM 方法的问题(除了骇人听闻的性质)是偶尔读取失败并且必须重试。另外,我想写入应用程序的数据库,这可能会导致更多的 sqlite 并发问题。
【问题讨论】:
如果您预计会出现并发问题,为什么要首先使用 sqlite? 【参考方案1】:这取决于您的应用程序在做什么。如果您的 REST 应用程序使用 Django ORM 从 SQLITE 读取一条数据,然后另一个应用程序执行写入操作,您可能会遇到一些有趣的竞争情况。为了防止这种情况,将这两个应用程序都作为 django-app 放在一个 Django 项目中可能是有意义的。
【讨论】:
以上是关于具有多个进程的 SOA 与 Django ORM的主要内容,如果未能解决你的问题,请参考以下文章
使用 Django ORM (CROSS JOIN) 计算组合
Tornado WebSocket 与 Django ORM 与共享会话