我是 GCP 堆栈的新手,所以我对用于存储数据的 GCP 技术数量感到非常困惑:
https://cloud.google.com/products/storage
虽然上面的文章中没有提到 google cloud spanner,但我知道它是存在的,并且 iti 用于数据存储:https : //cloud.google.com/spanner
从我目前的观点来看,我没有看到云 sql(引擎盖下有 postgres)和云扳手之间的任何显着差异。我发现它的语法有点不同,但是当我应该更喜欢这种技术而不是 spring cloud sql 时,它没有回答。
你能解释一下吗?
聚苯乙烯
我认为spring cloud sql是一个由google管理的具有自动复制和水平可扩展性的传统数据库。
google-cloud-sql google-cloud-platform google-cloud-spanner spring-cloud-gcp
我想注意的是,我将描述的场景很少发生,并且在大多数情况下,一切都按预期进行。
我在 Pub/Sub 端有 1 个主题和 1 个订阅。
我的 java 应用程序侦听订阅,进行一些处理并发送回确认。由于 google Pub/Sub 保证至少一次交付,我们根据objectGeneration标头和“objectId”标头在我们这边进行消息重复数据删除。
有时我们会看到我们的应用程序一次又一次地接受已确认的消息,这是意外行为。
日志示例:
//first
2019-12-17 20:51:57.375 INFO 1 --- [sub-subscriber3] bucketNotificationFlow : Received new message from pub-sub: GenericMessage [payload={....}, headers={.....objectGeneration=1576615916875106, eventTime=2019-12-17T20:51:56.874940Z, objectId=Small_files_bunch/100_12_1.csv, ....
....
2019-12-17 20:51:57.698 INFO 1 --- [sub-subscriber3] .i.g.PubSubMessageAcknowledgementHandler : Acknowledged message - 1576615916875106
...
//duplicate 1
2019-12-17 20:51:59.663 INFO 1 --- [sub-subscriber4] bucketNotificationFlow : Received new message from pub-sub: GenericMessage [payload={...}, headers={ objectGeneration=1576615916875106, eventTime=2019-12-17T20:51:56.874940Z, objectId=Small_files_bunch/100_12_1.csv", ....
...
2019-12-17 20:51:59.704 INFO 1 --- …Run Code Online (Sandbox Code Playgroud) java spring-integration google-cloud-platform google-cloud-pubsub spring-cloud-gcp
我想在 Spring Boot 应用程序中订阅多个 Google Cloud PubSub 项目。阅读如何在一个 Spring Boot 应用程序中使用 Spring Cloud 连接/配置两个 pubsub gcp 项目中的相关问题后?,如何将 Spring Cloud GCP 用于多个 google 项目和https://github.com/spring-cloud/spring-cloud-gcp/issues/1639我尝试如下。但是,由于没有适当的文档或示例代码,我不清楚如何实现这一点。我收到以下给定的错误,这似乎是由于未加载凭据而引起的。
发布订阅配置
已评论第二个 PubSub 项目的配置。
package com.dialog.chatboard.config;
import org.springframework.beans.factory.annotation.Qualifier;
import org.springframework.beans.factory.annotation.Value;
import org.springframework.cloud.gcp.pubsub.core.PubSubTemplate;
import org.springframework.cloud.gcp.pubsub.core.subscriber.PubSubSubscriberTemplate;
import org.springframework.cloud.gcp.pubsub.integration.inbound.PubSubInboundChannelAdapter;
import org.springframework.cloud.gcp.pubsub.support.DefaultSubscriberFactory;
import org.springframework.context.annotation.Bean;
import org.springframework.context.annotation.Configuration;
import org.springframework.integration.channel.DirectChannel;
import org.springframework.messaging.MessageChannel;
@Configuration
public class PubSubConfig {
DefaultSubscriberFactory genieFactory = new DefaultSubscriberFactory(() -> "XXXXX-projectId-01");
PubSubSubscriberTemplate …Run Code Online (Sandbox Code Playgroud) java configuration spring-boot google-cloud-pubsub spring-cloud-gcp
目前我需要将数据库从 postgreSql 移动到 google cloud sql。我使用 pg_cron 来删除过时的记录,如下所示:
SELECT cron.schedule('30 3 * * 6', $$DELETE FROM events WHERE event_time < now() - interval '1 week'$$);
Run Code Online (Sandbox Code Playgroud)
我读过以下文章: https: //cloud.google.com/sql/docs/postgres/extensions
并且没有找到任何与pg_cron相关的内容
我还读过Does Cloud SQL Postgres has any cron-like tool? 但这看起来对我的任务来说是过度设计的。
有没有更简单的方法?