首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >分布式长时间任务的公共订阅者的处理

分布式长时间任务的公共订阅者的处理
EN

Stack Overflow用户
提问于 2018-11-15 03:02:32
回答 1查看 352关注 0票数 0

我正在评估在诸如视频转码等长期运行的任务中使用pubsub的情况,在这种情况下,一个特定的转码可能需要2-10分钟。对于这样的任务分配,pubsub是一个很好的方法吗?例如,假设我有五个服务器:

代码语言:javascript
复制
- publisher1
- publisher2
- publisher3
- publisher4
- publisher5

还有一个叫做“视频”的话题。是否有可能在这五台服务器上平均地传播消息?那么当服务器被添加或删除时呢?什么是这样做的好方法,或者说公共部门不是这样做的合适工具?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2018-11-15 15:05:11

这听起来确实是公共部门的合理用例。具体来说,如果使用拉式订阅服务器,则可以将流控制设置配置为最多有一条未完成的消息给服务器,并将最大ack扩展期(在java中)配置为处理时间的合理上限。这里描述了这个api,http://googleapis.github.io/google-cloud-java/google-cloud-clients/apidocs/index.html?com/google/cloud/pubsub/v1/package-summary.html

如果您对所有作业使用相同的订阅服务器id,默认情况下,这将有效地在服务器上加载平衡。如果添加了一个服务器,并且存在待办事项,它将收到一个新条目。如果服务器被删除,它将不再被发送消息。如果在处理或崩溃时将其删除,则它正在处理的消息将被另一台服务器重新处理。

然而,一个值得关注的问题是,pubsub的每条消息的限制为10 is。您可以考虑将数据本身放到google云存储桶中。当上传完成时,云存储可以将文件位置发布到公共子主题。https://cloud.google.com/storage/docs/pubsub-notifications

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/53311804

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档