2014-12-04 59 views
0

所以我有多个项目,我想在Postgres数据库中使用一组公用的核心表来映射它们之间的认证方案。诸如“用户”帐户“组”或其他相关用户信息的东西存储在这些表中。我目前的项目是一个nodejs(多个设备)和一个Ruby web应用程序(稍后在多个设备上进行规划),我们也可以在将来有一个Django或另一个节点项目。有没有一种高效率,低成本的方法来实现这一目标,并且具有可扩展性和可靠性?我正在考虑使用一个s3实例和托管在其上的Postgres数据库,并将我的多个应用程序中的所有身份验证指向该数据库,但我想知道其他人是否也考虑过这个问题。多个项目,多种语言,相同的身份验证

+0

避免使用表名'user',因为这个名字有一个内置的伪函数,并且它是一个关键字,所以你必须像''user''那样引用它。 – 2014-12-04 04:18:05

回答

1

首先,请不要尝试在S3中托管postgres ..我相信你可能意味着EC2与EBS卷(这实际上是在s3上)。从易用性的角度来看(特别是在考虑持续维护时),在亚马逊的RDS产品上托管任何postgres实例确实是一种乐趣。没有深入了解该产品的所有细节,我只需简单说明,只需点击几下即可设置高可用性(故障切换),备份,升级和监控。这就是说,RDS并不是最便宜的解决方案,但成本并不高,这取决于您的负载和同时连接的数量。

如果所有这些数据库都要进行身份验证,然后断开连接 - 那么这样做会过度并会浪费资源。但是,如果您拥有相当复杂的一组权限和其他用户数据,那么它可能是一个相当简单的解决方案。

根据您的预算和要求,您可能会受益于在您的应用服务器上运行pgPool来集中连接 - 但我不会开始使用pgPool,除非您需要它。