首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >GCP服务器与"cloudsql.enable_instance_password_validation“的崩溃

GCP服务器与"cloudsql.enable_instance_password_validation“的崩溃
EN

Stack Overflow用户
提问于 2022-04-13 19:56:28
回答 1查看 156关注 0票数 2

在过去的一天里,我经常遇到这个错误,导致需要重置云实例才能继续连接:

代码语言:javascript
复制
ERROR:  unrecognized configuration parameter "cloudsql.enable_instance_password_validation"

这是在一个PostgreSQL 14 GCP社区上运行的,共享1 vCPU,0.614 GB实例,但也在问题持续存在的标准1 vCPU,3.7GB实例上进行了测试。

自发生此事件以来,唯一更改的代码是一个带有Golang池接口的侦听/通知调用,该接口已被恢复,并且问题仍然存在。

这个问题经常发生在任何数据库调用(重置后30分钟内),而且我没有设置任何涉及"enable_instance_password_validation“的内容--我也无法找到任何涉及该名称的参数。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2022-04-30 06:29:53

这是一个有趣的问题,@enocom指出Postgresql中的错误是一个红色鲱鱼,这是正确的。在整个过程中,由于Go服务器实例和Postgresql服务器都存在问题,出现了一些红斑鱼。

造成这些崩溃的真正原因是,用于与Postgres交互的Golang池接口默认最大“DBMaxPools”上限为14个连接。当我们到达这个数目的连接时,服务器挂起,没有任何错误日志,所有进一步的连接都会被永久拒绝。

要解决这个问题,只需在调用时在dbURI中添加一个‘dbURI’:

代码语言:javascript
复制
dbPool, err := pgxpool.Connect(context.Background(), dbURI)

这可以通过这样的方法来完成:

代码语言:javascript
复制
dbURI = fmt.Sprintf(`postgresql://%s:%s@%s:%s/%s?pool_max_conns=%s`, config.DBUser, config.DBPassword, config.DBAddress, config.DBPort, config.DBName, config.DBMaxPools)

详细说明可在这里找到:pgxpool包信息

当设置PGX时,请确保将此数字设置为与服务器实例的最大并发连接相同或类似的数字,以避免再次发生这种情况。对于GCP云运行实例,可以在部署修订中将其设置为“每个容器的最大请求”

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71863220

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档