我有一个在 Java 中完成的应用引擎标准环境中运行的应用程序,并使用 datanucleus 访问数据存储。它工作正常,并且由于它在标准环境中运行,它完美地连接到数据存储。
现在,我正在使用 spring-cloud-gcp-data-datastore 库为在 Spring Boot 中完成的应用程序部署一项新服务。我有用于服务帐户连接的 .json 文件,它在我的本地环境中使用 gcloud beta 模拟器完美运行。
但是现在,在生产环境中,当应用程序尝试连接到数据存储时,我可以在日志中看到错误:
com.google.cloud.datastore.DatastoreException:I/O 错误 ... 原因:com.google.datastore.v1.client.DatastoreException:I/O 错误 ... 原因:java.net.ConnectException:连接被拒绝(拒绝连接)
似乎该服务无法连接到数据存储。
我怎样才能看到连接中有什么问题?是否有列出 Spring Boot 应用程序和数据存储的连接过程?
解决
感谢迈克的所有支持。他给了我 Spring Cloud GCP 文档的钥匙。
问题是当我部署到生产环境时,我必须禁用本地模拟器的配置。如果您不这样做,应用程序将找不到 Datastore 服务。
一旦我评论了 spring.cloud.gcp.datastore.host 配置(Datastore Emulator Autoconfiguration)的行,该应用程序在生产中运行良好。