在Google Cloud PubSub中获取单个消息的大小

伊什瓦尔·韦努古帕尔

我有一个将消息发布到Google Cloud PubSub服务的设置。

我希望获得我发布到PubSub的每条消息的大小因此,为此,我确定了以下方法(注意:我正在使用Python客户端进行发布和订阅,并遵循其文档中介绍的逐行实现):

  • 使用“监视”功能从Google Cloud Console查看消息计数
  • 创建请求订阅客户端,message.size在回调函数中使用大小从请求的主题中提取消息。
  • 通过按照PubSub消息架构消息转换为JSON并使用来估计消息的大小,然后再发布sys.getsizeof()

对于我使用Python发布者客户端发布的如下示例消息:

{
  "data": 'Test_message',
  "attributes": {
    'dummyField1': 'dummyFieldValue1',
    'dummyField2': 'dummyFieldValue2'
  }
}

message.size在订阅用户中,以下回调函数输出为101

def callback(message):
    print(f"Received {message.data}.")
    if message.attributes:
        print("Attributes:")
        for key in message.attributes:
            value = message.attributes.get(key)
            print(f"{key}: {value}")
    print(message.size)
    message.ack()

而Cloud Console Monitoring上显示的大小约为79B。 在此处输入图片说明

所以这是我的问题:

  • 为什么同一封邮件的大小不同?
  • 输出的message.size单位字节吗?
  • 在使用python客户端发布之前,如何查看消息的大小?
  • 如何在Cloud Console上查看单个消息的大小,而不是在“监视”部分中找到的给定时间范围内对大小的汇总度量?
亚历山大·莫拉斯

为了进一步为社区做出贡献,我在总结我们的讨论作为答案。

  1. 关于message.size,它是来自订户客户端中消息的属性。另外,根据文档,其定义为:

返回基础消息的大小,以字节为单位

因此,您将无法在发布之前使用它。

  1. 相反,message_size是Google Cloud Metrics中的一个指标,由Cloud Monitoring在此处使用

最后,讨论的最后一个主题是您的目的是监视配额支出,以便您可以保持免费。因此,最好的选择是使用Cloud Monitoring,并根据指标设置警报pubsub.googleapis.com/topic/byte_cost以下是一些链接,您可以在其中找到更多信息:配额利用率基于警报事件警报策略

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

Google Cloud PubSub在异步请求中侦听消息时抛出504 Deadline Exceeded错误

来自分类Dev

Google Cloud PubSub:不发送/接收来自Cloud Functions的所有消息

来自分类Dev

Google Cloud Logging + Google流利的丢弃消息

来自分类Dev

从Salesforce中的Google Cloud Platform获取令牌

来自分类Dev

获取Google Cloud Datastore中的项目计数

来自分类Dev

使用DoFn使用Cloud Dataflow从PubSub写入Google Cloud Storage

来自分类Dev

Google Cloud PubSub 访问查询参数

来自分类Dev

dart中的Google Cloud Messaging

来自分类Dev

Google Cloud DNS中的CNAME

来自分类Dev

使用Google Cloud Dataflow合并Google Cloud Storage中的文件

来自分类Dev

如何在Google Cloud Functions中获取HTTP请求正文大小?

来自分类Dev

Google Cloud Messaging-发送消息

来自分类Dev

Google Cloud SQL行大小限制

来自分类Dev

没有名为providers.google.cloud.operators.pubsub的模块:Google Cloud Composer

来自分类Dev

从Google Cloud Endpoints的请求路径获取参数

来自分类Dev

从ObjectName获取Google Cloud Storage文件

来自分类Dev

获取Google Cloud Engine VM的root密码

来自分类Dev

Google Cloud Build获取身份令牌

来自分类Dev

如何获取Google Cloud Messenger的注册ID

来自分类Dev

从Google Cloud Endpoints获取已部署的配置

来自分类Dev

Google Cloud 获取未经授权的集群凭据

来自分类Dev

从 Firebase 获取数据 - Google Cloud Functions

来自分类Dev

Google Cloud Kubernetes Laravel 获取访客 IP

来自分类Dev

如何在Google Cloud App Engine上使用PubSub创建订阅者,以通过Publisher从Google Cloud App Engine Flex收听消息?

来自分类Dev

如何使用Google API从Google Cloud Storage获取报告

来自分类Dev

Python代码中的Google Cloud Datastore API

来自分类Dev

在Google Cloud Endpoints中登录Facebook

来自分类Dev

更改Google SQL Cloud中的区域

来自分类Dev

Google Cloud Datastore中的追溯索引

Related 相关文章

  1. 1

    Google Cloud PubSub在异步请求中侦听消息时抛出504 Deadline Exceeded错误

  2. 2

    Google Cloud PubSub:不发送/接收来自Cloud Functions的所有消息

  3. 3

    Google Cloud Logging + Google流利的丢弃消息

  4. 4

    从Salesforce中的Google Cloud Platform获取令牌

  5. 5

    获取Google Cloud Datastore中的项目计数

  6. 6

    使用DoFn使用Cloud Dataflow从PubSub写入Google Cloud Storage

  7. 7

    Google Cloud PubSub 访问查询参数

  8. 8

    dart中的Google Cloud Messaging

  9. 9

    Google Cloud DNS中的CNAME

  10. 10

    使用Google Cloud Dataflow合并Google Cloud Storage中的文件

  11. 11

    如何在Google Cloud Functions中获取HTTP请求正文大小?

  12. 12

    Google Cloud Messaging-发送消息

  13. 13

    Google Cloud SQL行大小限制

  14. 14

    没有名为providers.google.cloud.operators.pubsub的模块:Google Cloud Composer

  15. 15

    从Google Cloud Endpoints的请求路径获取参数

  16. 16

    从ObjectName获取Google Cloud Storage文件

  17. 17

    获取Google Cloud Engine VM的root密码

  18. 18

    Google Cloud Build获取身份令牌

  19. 19

    如何获取Google Cloud Messenger的注册ID

  20. 20

    从Google Cloud Endpoints获取已部署的配置

  21. 21

    Google Cloud 获取未经授权的集群凭据

  22. 22

    从 Firebase 获取数据 - Google Cloud Functions

  23. 23

    Google Cloud Kubernetes Laravel 获取访客 IP

  24. 24

    如何在Google Cloud App Engine上使用PubSub创建订阅者,以通过Publisher从Google Cloud App Engine Flex收听消息?

  25. 25

    如何使用Google API从Google Cloud Storage获取报告

  26. 26

    Python代码中的Google Cloud Datastore API

  27. 27

    在Google Cloud Endpoints中登录Facebook

  28. 28

    更改Google SQL Cloud中的区域

  29. 29

    Google Cloud Datastore中的追溯索引

热门标签

归档