监控和刷新 PubSub 批处理发布者队列

Posted

技术标签:

【中文标题】监控和刷新 PubSub 批处理发布者队列【英文标题】:Monitoring and Flushing a PubSub Batch Publisher Queue 【发布时间】:2018-12-21 07:04:10 【问题描述】:

在 Google PubSub 的 Node.js Client 中,是否可以监控 Batch Publisher 队列的大小并按需刷新?

我正在开发一个 Node/Express 服务,它使用 PubSub 批量发布者将应用程序事件推送到 PubSub 主题中。我想为批量发布者的队列大小设置一些指标和警报。另外,当这个服务的一个实例接收到一个 SIGTERM 信号时,我想运行一个关闭程序以确保消息不会丢失。理想情况下,我希望在发生这种情况时刷新发布者队列中的所有消息,但至少我希望能够知道保留哪些消息(如果有的话)。该服务将在 Google App Engine 内部运行,该引擎在 lifecycle events 上有一些文档,但没有特定于 PubSub,至少我已经找到了。

我已通读 PubSub 节点客户端文档和示例,但没有看到任何提及这些功能的内容。我确实注意到 Publisher 对象有一个 publish_ method 来强制发布队列,但它被明确称为私有方法,不能在外部使用,所以我犹豫要不要使用它。

有人有监控和刷新 PubSub 批量发布者队列的经验吗?任何帮助或资源将不胜感激。

【问题讨论】:

【参考方案1】:

无法对批处理队列进行更多控制。但是有一个公共功能请求[1] 用于更透明地跟踪(即记录、监控)消息生命周期,我将您的用例添加到请求中。

【讨论】:

以上是关于监控和刷新 PubSub 批处理发布者队列的主要内容,如果未能解决你的问题,请参考以下文章

用于监控谷歌云 pubsub 中未传递消息的 REST API

批处理 PubSub 请求

“处理组件 pubsub 错误:组件 pubsub 的初始化超时超过 5 秒”

GCP PubSub - 使用 orderingKey (Nodejs) 进行批处理

JavaScript 中 PubSub / 过多事件和事件处理程序的性能成本?

初识消息队列处理机框架KClient