问题标签 [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 - 即使在确认后,应用程序也接受来自 google Pub/Sub 的重复消息
当我在 GCP 环境中测试应用程序时,我遇到了非常奇怪的浮动 bug()。我找不到具体的重现步骤,但它确实不时发生。
我看到该消息已成功确认:
我有以下代码要确认:
我还看到以下日志:
并且不断重复。此外,我在订阅图中看到消息仍然存在(在确认回调调用之后)
丢弃逻辑:
我不知道如何解决它。有任何想法吗?
java - 如何实现集群中的每个节点都接受来自 Google 发布/订阅主题的消息?
我有集群应用程序,它监听来自 tge 订阅的消息
所以我有 1 个主题和 1 个订阅。以下模式用作负载平衡器,因此集群中的每个节点都接受唯一的消息。像这样
生产者生产A
, B
, C
, D
,E
假设集群包含 2 个节点。可能的情况是node_1
接受A
,D
但node_2
接受B
,C
abdE
如果我知道集群中有多少个节点,我可以为每个节点创建订阅。它将允许监听每个集群节点上的每条消息。但是,如果我的节点数不时变化怎么办?(它可能会增加或减少)。我怎样才能在集群的每个节点上接受来自发布者的每条消息?
java - 有没有办法从谷歌云 sql 中使用 pg_cron?
目前我需要将我的数据库从 postgreSql 移动到 google cloud sql。我使用 pg_cron 删除过时的记录,如下所示:
我已阅读以下文章:https ://cloud.google.com/sql/docs/postgres/extensions
并且没有找到任何与 pg_cron 相关的东西
我还阅读过Cloud SQL Postgres 是否有类似 cron 的工具?但它看起来像我的任务过度设计。
有没有更简单的方法?
spring - IntegrationMBeanExporter.stopActiveComponents() 与 gcp pub/sub 生产者一起抛出大量 InterruptedExceptions
我们有以下(简化的)流程:
-> 入站 FILE API 从远程服务器读取文件,带有固定轮询器
-> 分离器,通过直接通道连接
-> GCP pub/sub producer,从 splitter 中一一读取消息并发布到 GCP pubsub topic
现在,由于我们正在处理的文件可能非常大,我们尝试用它IntegrationMBeanExporter.stopActiveComponents()
来优雅地关闭流,我们可以停止轮询新消息但仍然处理我们现在正在处理的消息。这样,当我们需要关闭运行流时,例如由于新部署,我们可以避免数据丢失。
现在,一旦我们使用 JMX 调用该方法,我们的轮询器就会正确关闭,而不会影响任何正在进行的消息,所有正在进行的消息实际上都正确发送到 pub/sub,但是我们开始
PubSubMessageHandler
从由此创建的 Future 获取 InterruptedExceptions线:
一旦我们调用stopActiveComponents
.
(这实际上用于在第一个 InterruptedException 发生时停止整个流(流仅通过直接通道连接),因为这个异常被传播回轮询器并且所有后续消息都丢失了。我们通过使用网关组件PubSubMessageHandler
和重定向解决了这个问题所有错误都分离错误通道。-有人可能会觉得这很有用)
有人可以帮助为什么会发生这种情况以及如何摆脱它?我试图将我自己的发布者线程池挂接到PubSubMessageHandler
,但没有任何结果。我猜是因为 PubSubMessageHandler 在内部将谷歌期货映射到弹簧SettableListenableFuture
?
堆栈跟踪
spring-cloud-sleuth - 超时异常后没有报告进一步的跟踪
我将带有 GCP 支持的 spring-cloud-sleuth 集成到应用程序中。在负载下,应用程序突然停止报告任何跨度,直到重新启动。
我能看到的唯一跟踪相关日志是以下异常:
此异常在跟踪结束时发生了几次,然后再也不会发生(好像某些东西永久中断)
我读到一个 spring-cloud-gcp 问题(见这里),这可能与少数执行线程有关,所以我已经将线程数配置为 8(从 4)。
spring-boot - Spring + google cloud:没有可用的“com.google.cloud.storage.Storage”类型的合格bean
我正在尝试将 spring 库用于谷歌云 API:
spring-cloud-gcp-starter-vision
但是 Spring Application Context 无法加载并出现错误:
原因:org.springframework.beans.factory.UnsatisfiedDependencyException:在类路径资源[org/springframework/cloud/gcp/autoconfigure/vision/CloudVisionAutoConfiguration$VisionOcrConfiguration.class]中定义的名称为'documentOcrTemplate'的bean创建错误:不满足的依赖关系通过方法'documentOcrTemplate'参数1;嵌套异常是 org.springframework.beans.factory.NoSuchBeanDefinitionException:没有“com.google.cloud.storage.Storage”类型的合格 bean 可用:预计至少有 1 个有资格作为自动装配候选者的 bean。依赖注释:{}...
我不确定如何处理它,因为它都是谷歌的代码,在我自己的代码中没有。
仅供参考,这是我尝试使用此库的方式:
google-cloud-platform - Google Cloud Spanner 和 Cloud SQL 有什么区别?
我是 GCP 堆栈的新手,所以我对用于存储数据的大量 GCP 技术感到非常困惑:
https://cloud.google.com/products/storage
虽然上面的文章中没有提到谷歌云扳手,但我知道它存在并且它用于数据存储:https ://cloud.google.com/spanner
从我目前的观点来看,我没有看到云 sql(引擎盖下带有 postgres)和云扳手之间有任何显着差异。我发现它的语法有点不同,但是当我应该更喜欢这种技术而不是 spring cloud sql 时,它没有回答。
你能解释一下吗?
附言
我认为 spring cloud sql 是一个传统的数据库,由谷歌管理,具有自动复制和水平可扩展性。
spring-cloud-gcp - 获取文档中的所有集合
我在firebase数据中有以下结构
订单 -> OrderID -> LocationHistory -> LocationHistoryID -> FieldsData
Orders 和 LocationHistory 是常量,而 OrderID ,LocationHistoryID 是文档 ID
我想知道是否可以生成一个查询以获取存储库中订单的所有 LocationHistory,该存储库扩展 FirestoreReactiveRepository,它应该是 /Orders/10002/LocationHistory/
Belwo 是我目前使用的代码