我们正在尝试找出在实时网站上使用慢速数据库的最佳解决方案。
基本系统架构是这样的:
我们正在开发一个新的Web应用程序,以使用Symfony 2在Web服务器上运行。
我们最初的计划是创建一个RESTful API,使其位于内部服务器上,并由Web应用程序使用。我们面临的主要问题是Web应用程序的速度受到Postgres DB速度的限制,这对于用户来说是无法接受的。
有人知道解决此速度问题的任何策略吗?
缓存是显而易见的解决方案,我们当然可以讨论数据的最新需求,但是在某些情况下,它必须是最新的。例如,如果用户保存了一些更改,则这些更改应立即显示。我们考虑过让API具有自己的快速数据存储区,并从Postgres异步更新。然后,我们可以在此快速存储上执行所有读取,将写入同时提交到Postgres。当然,担心的是数据的一致性和系统复杂性的增加。
我们正在探索使用JSON-LD来表示数据,因为它非常适合我们正在使用的数据,并且使用标准(尽管相对较年轻)可以缓解 future 可能发生的任何重大架构更改。由于可以将其直接放入文档存储中,因此有可能简化该过程。
我们的主要目标是:
任何建议都将受到欢迎!
最佳答案
我认为要问的主要问题是:为什么Postgres DB这么慢?同样从您的解释中,还不清楚所有这些系统在做什么以及依赖/要求是什么。例如,是否需要PostgresDB中的数据是最新的?那是主数据库吗?它是用于整体离线系统的集成数据库吗?
如果您无法更改速度较慢的Postgres DB,则它必须是最新的,并且网站依赖它,并且还必须是最新的(在某些情况下),因此您会遇到问题,因为这不会不可能的。如果Postgres DB不需要最新,因为离线应用程序仍在使用它,则可以随意更新该DB并使用MySQL数据库,从而为您提供必要的性能。
鉴于您计划使用JSON-LD,我很想听听有关您正在构建的系统的更多信息。您可以分享更多信息吗?