问题标签 [spring-cloud-gcp]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 运行集成测试时禁用 Spring Cloud Sleuth?
在本地使用org.springframework.cloud:spring-cloud-gcp-starter-trace:1.0.0.RELEASE
和运行我的集成测试时,我收到以下错误消息:
org.springframework.beans.factory.BeanCreationException:在类路径资源[org/springframework/cloud/gcp/autoconfigure/trace/StackdriverTraceAutoConfiguration.class]中定义名称为“stackdriverSender”的bean创建错误:通过工厂方法进行的bean实例化失败;嵌套异常是 org.springframework.beans.BeanInstantiationException:无法实例化 [zipkin2.reporter.Sender]:工厂方法“stackdriverSender”抛出异常;嵌套异常是 java.io.IOException:应用程序默认凭据不可用。如果在 Google Compute Engine 中运行,它们就可用。否则,必须定义环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向定义凭据的文件。看 https://developers.google.com/accounts/docs/application-default-credentials 了解更多信息。
这是完全可以理解的,因为此环境变量在本地不存在,并且我不想在运行测试时使用 Sleuth/Stackdriver 跟踪。我查看了参考文档,但似乎只能找到有关如何为特定集成点(如 RxJava、RestTemplate 等)禁用 Sleuth 的信息。但是如何完全禁用 Sleuth?
我试过设置spring.sleuth.enabled=false
,但这似乎没有任何区别。
asynchronous - 如何从 GCP 中的无状态 Spring Boot 服务跟踪异步长时间运行进程的状态?
我们有一些 Spring Boot 服务在其中运行,GCP Kubernetes Engine
它们将它们的 HTTP(通过 gRpc)API 暴露给客户端。一项任务是导入非常大的数据文件。建议的方法是将文件上传到 Google 存储,并通过提供导入位置的文件路径来触发,asynchronous import
并在请求有效的情况下返回 HTTP 202。
接下来,我们在持久层(spanner)中将导入的状态设置为挂起,并触发异步解析和批量摄取过程。如果导入成功,我们将状态设置为已完成。客户知道导入是否成功的唯一方法是返回并poll our API for the current status.
那么问题就来了。有好几个load-balanced pods
同种。如果导入服务崩溃(我的意思是崩溃,而不是异常处理),我们没有直接的方法最终将状态设置为中止。状态将永远保持挂起。
如果可能的话,我们希望避免使用像 hazelcast 这样的附加层。此外,我们希望避免让另一个服务直接与一个或其他 pod 通信、观察状态并执行一些花哨的回调操作。
谁能提示如何以最佳实践方式解决该问题?
非常感谢。
kubernetes - Spring GCP 服务未连接到 Cloud SQL 数据库
我有一个 Spring GCP 服务,它在本地运行时可以很好地连接到我的 Google Cloud SQL 实例。
但是,当我在我的 Google Cloud Kubernetes 集群上部署和启动时,它无法连接并出现权限不足错误。
我按照步骤https://cloud.google.com/sql/docs/mysql/connect-kubernetes-engine,但仍然是相同的连接问题。
我的源代码是https://github.com/christianblake/spring-boot-gcp
deployment.yml 位于根目录中。
感谢有人有任何指示,因为我显然错过了一点。
谢谢你。
kubernetes - Kubernetes 负载均衡器服务器连接被拒绝:默认 80 端口正在工作
部署 Spring 微服务后,Kubernetes 中的负载均衡器未连接到 Google Cloud Platform 中提到的端口。
我们需要更改任何防火墙设置以连接到已部署的服务吗?
https://serverfault.com/questions/912734/kubernetes-connection-refused-during-deployment
java - AbstractGoogleClient - 未设置应用程序名称。调用 Builder#setApplicationName
如何设置 GCP 应用程序名称?
我的班级中有以下构造函数。
我真的希望你的帮助。
google-app-engine - Spring GCP - Google 数据存储中的 OneToMany、ManyToOne、ManyToMany
我试图找到一种方法如何在 Spring GCP 中实现 OneToMany、ManyToOne、ManyToMany 关系。
根据参考资料,表示实体之间的关系有三种方式:嵌入@Descendant
和@Reference
. 并且没有其他方法可以实现上述注释。请澄清有关实现 JPA 注释的方式。
google-cloud-datastore - Spring+GCP Datastore:我使用存储库,并希望在开发或测试期间将其配置为使用数据存储模拟器
我通过这条线启动了模拟器:
当然我可以定义 com.google.cloud.datastore.Datastore 并通过以下行创建实例:
但是如何强制spring-gcp 存储库使用模拟器数据存储?
存储库类的示例:
redis - 谷歌云内存存储(Redis),实例刚启动时无法连接到redis
当我的实例刚刚启动时,我无法连接到 redis。
我用:
我得到以下异常:
2-3分钟后,它工作顺利
我是否需要在我的代码中添加一些检查或者我应该如何正确修复它?
ps我也使用spring boot,配置如下
在 pom.xml 中
spring-cloud - Spring Cloud Stream 中的确认消息
我决定使用 SCS 以避免被特定的消息代理卡住。话虽如此,我还没有找到一种自动或手动确认消息的方法,我发现的只是 Spring Cloud GCP 下的东西,比如 PubSubTemplate。问题是我的听众一遍又一遍地收到相同的消息。无论消息实现如何,有没有办法在 SCS 中拉出消息后立即自动确认消息?也许通过改变一些财产?
java - 如何将 spring gcp PubSubTemplate 连接到本地实例?
我正在使用 Spring Boot Starterspring-cloud-gcp-starter-pubsub
和PubSubTemplate
. 它与实际的 GCP 完美配合,但现在我想将它用于本地 Google PubSub 模拟器的测试。如何提供我的自定义 url、端口和无凭据?
或者我必须恢复使用普通的 google sdk,如本例所示
编辑:
我的应用程序中只有一个 bean:
和
应用程序属性:
当我运行应用程序时,我得到了:
原因:java.io.IOException:应用程序默认凭据不可用。如果在 Google Compute Engine 中运行,它们就可用。否则,必须定义环境变量 GOOGLE_APPLICATION_CREDENTIALS 指向定义凭据的文件。有关详细信息,请参阅https://developers.google.com/accounts/docs/application-default-credentials。在 com.google.auth.oauth2.DefaultCredentialsProvider.getDefaultCredentials(DefaultCredentialsProvider.java:132) ~[google-auth-library-oauth2-http-0.12.0.jar:na] ...
但当然链接说的是 gcloud sdk,而不是 pubsubtemplate