当前位置: 首页 > 知识库问答 >
问题:

订购消息发布/订阅GCP

赫连照
2023-03-14

我是新的数据流和发布子工具在GCP。

需要将prem过程中的电流迁移到GCP。

当前流程如下:

我们有两种类型的数据馈送

  1. Full Feed–其adhoc作业–完整XML的大小约为100GB(单个XML–非常复杂的一个–完整的数据–ETL作业处理此XML并将其加载到约60个表中)
  • 单独的ETL作业用于处理完整提要。ETL作业过程完全馈送并创建负载就绪文件,所有表将被截断并重新加载
  • 源系统每30分钟推送一次XML文件(超过一个,文件有时间戳),计划的ETL进程将选择源系统生成的所有文件并处理所有xml文件并为每个表创建3个加载就绪文件插入、删除和更新
  • 计划-ETL作业计划每5分钟运行一次,如果当前进程运行超过5分钟,则在当前进程完成之前不会触发下一次运行
  • 文件处理的顺序非常重要(ETL作业会处理这个)。需要按顺序处理所有文件。
  • 在ETL进程结束时,将加载就绪文件加载到表(大型机)

我被要求提出将其迁移到GCP的设计。GCP中需要有两个进程,即full和delta。我提出的解决方案应该适用于这两种提要。

最初我想下面的设计。

酒馆/子-

然后才知道,pub/sub不会保证按顺序处理文件。在做了一些研究之后,了解到谷歌最近为发布/订阅引入了订购关键概念,这将确保按顺序处理消息。google cloud docs中提到,该功能正在测试中。

我有两个问题:

  • 是否有人在正式生产环境中的pub/sub中使用了订购键概念。如果是,您在实施此操作时是否面临任何挑战
  • 这种设计是否适合上述要求或GCP中是否有更好的解决方案
  • DataFlow有其他选择吗?
  • 知道pub/sub最多可以处理10MB大小的消息,对我们来说每个XML大小都超过~5G。

共有1个答案

单于善
2023-03-14

正如@guillaume blaquiere所提到的,测试版产品发布阶段带来了一些限制,但它们大多与产品支持有关:

在测试版,产品或功能已经准备好接受更广泛的客户测试和使用。测试版通常是公开宣布的。除非在产品条款或特定测试计划的条款中另有规定,否则测试版中没有SLA或技术支持义务。平均测试阶段持续大约六个月。

通常情况下,云发布/订阅消息排序功能会按预期工作,一旦您有需要开发者关注的内容,我们非常感谢您通过谷歌问题跟踪器发送报告。

 类似资料:
  • 微信文档:https://developers.weixin.qq.com/miniprogram/dev/api-backend/open-api/subscribe-message/subscribeMessage.addTemplate.html 组合模板并添加至帐号下的个人模板库 $tid = 563; // 模板标题 id,可通过接口获取,也可登录小程序后台查看获取 $kidLi

  • 开普勒消息目前分为三大类:公告,告警和通知。 通知中根据不同的操作事件类型,分为十几个事件。每个事件都跟项目操作相关。便于接收项目操作变更的通知。 分类 事件 公告 Alarm 告警 Proclaim 通知 Build,Apply,Audit,Delete,Rollback,Logging,Reboot,Command,Storage,Extend... 订阅界面: 用户中心,点击头像,下拉菜单→

  • 简介 Redis 的列表类型键可以用来实现队列,并且支持阻塞式读取,所以 Redis 能够非常容易的实现一个高性能的优先队列。同时在更高层面上,Redis 还支持“发布/订阅”的消息模式,可以基于此构建一个聊天系统。 发布示例 发布(Publish)即将消息发布到频道中。示例代码: // 发送消息 Redis::publish('chan-1', 'Hello, World!'); // 发送消息

  • 问题 你有一个基于线程通信的程序,想让它们实现发布/订阅模式的消息通信。 解决方案 要实现发布/订阅的消息通信模式, 你通常要引入一个单独的“交换机”或“网关”对象作为所有消息的中介。 也就是说,不直接将消息从一个任务发送到另一个,而是将其发送给交换机, 然后由交换机将它发送给一个或多个被关联任务。下面是一个非常简单的交换机实现例子: from collections import default

  • 主要内容:发布/订阅流程,常用命令汇总,基本命令应用Redis PubSub 模块又称发布订阅者模式,是一种消息传递系统,实现了消息多播功能。发布者(即发送方)发送消息,订阅者(即接收方)接收消息,而用来传递消息的链路则被称为  channel。在 Redis 中,一个客户端可以订阅任意数量的 channel(可译为频道)。 消息多播:生产者生产一次消息,中间件负责将消息复制到多个消息队列中,每个消息队列由相应的消费组进行消费,这是分布式系统常用的

  • 发布/订阅 消息顺序 当使用 pub/sub API的时候,你需要做一个决定:那就是对于来自同一个连接的消息是应该按顺序处理还是应该并行处理。 按顺序处理意味着你不需要关心线程安全,并且保持了事件的顺序;消息会以完全相同的顺序接收处理(通过队列),因此,这意味着消息能够被相互延迟。 另外一种选择是并发处理。使用并发处理 不能保证 工作处理的有序性,并且你的代码要对并行消息完全负责确保它不会破坏内部