我有两个Web应用程序,一个面向客户,另一个面向内部使用。 两者都使用PostgreSQL数据库。 我可以在这些应用程序之间共享数据的方法是什么? 这两个应用程序都需要读取和写入权限,但数据不需要立即可用。 此外,我希望这两个应用程序不依赖于对方,可以脱机,而不会影响其他应用程序。
我可以考虑以下选项。 我错过了什么吗?
最简单的办法是拥有两个应用程序都可以访问的第三个PostgreSQL数据库。 我可以看到的缺点是数据库模式需要相同,并且这两个应用程序都需要第二个数据库始终在线。
与选项A类似,但是这两个应用程序都可以访问并使用API使用独立的服务。 服务仍然需要始终可用。
这两个应用程序都有自己的一组数据并发布更改事件。 一个消息系统,如Amazon SQS,其中应用程序将侦听消息并相应地更新那里的数据。 我喜欢这种方法,但已经可以看到数据如何失去同步。
有没有选项D?
D)一个内部面临访问另一个数据库。
对我来说这是最好的方法。 在客户方面,你不想丢失任何东西,所以如果你想共享访问,你将有一个方法来跟踪它。
第二点,如果数据库在非军事区内,那么只从内部 – > dmz进行信任是更好的办法。
第三点,如果访问是一个问题,那么创build一个跟踪器服务,在两个数据库中读取和同步该表。