【问题标题】:Graphite pickle protocol: what is the maximum message size?石墨泡菜协议:最大消息大小是多少?
【发布时间】:2019-10-30 20:15:54
【问题描述】:

石墨-0.9.15

用 python-3.7 编写的 Python 客户端直接连接到 Carbon。

我正在关注这里的文档:

https://graphite.readthedocs.io/en/latest/feeding-carbon.html

一旦你形成了一个足够大的列表(不要太大!),并且 腌制它(如果您的客户端正在运行更新版本的 python 比您的服务器,您可能需要指定协议)发送数据 通过连接到 Carbon 的 pickle 接收器的套接字(默认情况下,端口 2004)。

payload = pickle.dumps(listOfMetricTuples, protocol=2)
header = struct.pack("!L", len(payload))
message = header + payload

“太大”有多大?

使用 pickle 协议时,最大负载和/或消息大小是多少:

  • 元组数
  • 未压缩的实际字节大小
  • 使用 protocol=2 压缩的实际字节大小

服务器端的限制是什么?

【问题讨论】:

    标签: python pickle graphite graphite-carbon


    【解决方案1】:

    在您之后几年遇到了这个问题。我可以通过反复试验得出最好的结论,您示例中的最大有效负载大小是 1048703,恰好是 1MiB 加上 127 个字节。我没有遇到元组数量的限制。如果记录了实际限制会很好,但是一旦您知道需要发送成批的元组就很容易了。

    【讨论】:

      猜你喜欢
      • 2016-01-23
      • 2016-01-12
      • 1970-01-01
      • 2013-03-04
      • 2013-09-01
      • 2011-06-11
      • 2018-02-04
      • 1970-01-01
      相关资源
      最近更新 更多