如何在网络应用程序之间共享数据?

如何在网络应用程序之间共享数据?

我有两个 Web 应用程序,一个面向客户,一个供内部使用。两者都使用 PostgreSQL 数据库。我可以采用哪些方法来在这些应用程序之间共享数据?两个应用程序都需要读写权限,但数据不需要立即可用。此外,我希望两个应用程序不相互依赖,一个可以离线而不影响另一个应用程序。

我能想到以下选项。我遗漏了什么吗?

选项 A:第三个数据库

最简单的方法是使用第三个 PostgreSQL 数据库,两个应用程序都可以访问该数据库。我认为缺点是数据库架构必须相同,并且两个应用程序都需要第二个数据库始终在线。

选项 B:单独的 API 服务

与选项 A 类似,但服务是分开的,两个应用程序都可以访问,并且有 API 可以使用。但服务仍然需要始终可用。

选项 C:消息事件

两个应用程序都有自己的数据集并发布更改事件。消息系统(如 Amazon SQS)中,两个应用程序都会监听消息并相应地更新数据。我喜欢这种方法,但已经可以看到数据如何不同步。

有D选项吗?

答案1

D) 一个内部接口将访问另一个数据库。

对我来说这是最好的方法。在客户端,你不想丢失任何东西,所以如果你想要共享访问权限,你就有办法跟踪它。

第二点,如果数据库位于 DMZ 中,那么最好仅从内部 -> dmz 建立信任。

第三点,如果访问存在问题,则创建一个跟踪器服务来读取并同步两个数据库中的该表。

相关内容