Google compute engine 多区域的云sql
我正在创建一个谷歌云设置,在多个区域中有多个实例组(3)。它们都在同一个专有网络中 区域:Google compute engine 多区域的云sql,google-compute-engine,google-cloud-sql,Google Compute Engine,Google Cloud Sql,我正在创建一个谷歌云设置,在多个区域中有多个实例组(3)。它们都在同一个专有网络中 区域: 美国中央银行 欧洲-北方1 东亚1 所有三个实例组都有2个VM。它是一个HTTP(s)负载平衡器,当我访问负载平衡器的公共IP地址时,我会看到apache欢迎页面(apache安装在虚拟机上)。所以这是可行的 我还有一个云SQL(PostgreSQL)数据库。我想通过它的私有IP访问这个数据库。我已经将虚拟机使用的VPC网络与云SQL实例的私有IP相关联。此实例在us-central1区域运行 现在,
- 美国中央银行
- 欧洲-北方1
- 东亚1
const db = new Pool({
host: '127.0.0.1',
port: 5432,
user: 'postgres',
password: 'postgres',
database: 'postgres'
})
我还尝试将“127.0.0.1”替换为localhost,我删除了端口。。。什么都不管用。凭据是正确的
编辑2:当我在后台运行cloud\u sql\u代理,同时运行我的nodejs应用程序,并导航到时,我会在控制台中看到一个日志:
2020/01/22 17:55:20 New connection for "project-id:region:instance-name"
但10秒后,我得到了这个:
2020/01/22 17:57:00 Client closed local connection on 127.0.0.1:5432
编辑3:
我还尝试将主机更改为/cloudsql/instance\u connection\u name,但也没有结果
const db = new Pool({
host: '/cloudsql/[project-id]:[region]:[instance-name]',
port: 5432,
user: 'postgres',
password: 'postgres',
database: 'postgres'
})
Panner绝对是一个选项,因为与跨区域连接到云SQL相比,使用Panner进行全局一致性设置可能会获得更好的延迟 另一个选择是查看VPC对等: 我认为你可以跨地区做,虽然我还没有玩过它,但那可能只是“工作”与私人IP 或者,如果您对应用程序中的一些延迟没有意见,那么通过公共IP连接到云SQL是一个不错的选择,但不要使用允许的网络(白名单)。尽可能使用代理,或者设置SSL连接(这有点痛苦,但绝对值得)
我在这里有一篇关于使用公共IP+云SQL代理的详细博客:,这是一种相对简单的从虚拟机出发的方式。使用扳手肯定是一种选择,因为使用扳手进行全局一致性设置可能比跨区域连接云SQL获得更好的延迟 另一个选择是查看VPC对等: 我认为你可以跨地区做,虽然我还没有玩过它,但那可能只是“工作”与私人IP 或者,如果您对应用程序中的一些延迟没有意见,那么通过公共IP连接到云SQL是一个不错的选择,但不要使用允许的网络(白名单)。尽可能使用代理,或者设置SSL连接(这有点痛苦,但绝对值得)
我在这里有一个关于使用公共IP+云SQL代理的详细博客:,这是一种相对简单的从虚拟机出发的方法。解决方案
因此,解决方案非常简单:它与一些配置无关,而是与我的nodejs代码有关。我忘记了postgresql查询是一种承诺,所以我必须等待结果返回。添加async/await解决了问题。解决方案
因此,解决方案非常简单:它与一些配置无关,而是与我的nodejs代码有关。我忘记了postgresql查询是一种承诺,所以我必须等待结果返回。添加async/await解决了问题。谢谢!我让它部分工作。它在使用postgresql客户端的终端中工作,但我也希望它在我的nodejs应用程序中工作。我已经编辑了我的问题。谢谢!我让它部分工作。它在使用postgresql客户端的终端中工作,但我也希望它在我的nodejs应用程序中工作。我已经编辑了我的问题。