【问题标题】:Pika/RabbitMq Socket closed on large message sent through SSLPika/RabbitMq 套接字在通过 SSL 发送的大消息时关闭
【发布时间】:2017-05-23 19:04:27
【问题描述】:

在使用 Pika 通过 SSL 连接向 RabbitMq 发送大消息时,我收到错误“连接打开时套接字已关闭”。

连接是一个带有 TLSv1_2 协议配置的 SelectConnection

对于大于 130kB 的消息,它会失败。较小的消息可以通过。如果没有 SSL,相同的代码可以处理更大的消息,甚至可以完美传递数十兆字节。

环境:

  • 鼠兔 0.10.0
  • rabbitmq 3.6.9, erlang 19.2
  • 发送者、接收者和rabbitmq服务器在同一台物理机上
  • linux 或 macOS

关于发生了什么以及如何解决它的任何建议?

非常感谢

【问题讨论】:

  • 我假设您发布的错误来自客户端。 RabbitMQ 日志文件中有对应的条目吗?
  • 没有数据到达服务器。日志显示:=警告报告==== 23-May-2017::20:31:12 === 关闭 AMQP 连接 (******:10707 -> ****** :5671): 客户端意外关闭 TCP 连接
  • 消息的大小正好在 frame_max 限制。 pika 使用 SSL 在多个帧上传播消息是否存在问题?
  • @tjean 这很可能,但应该不是问题。我自己的 amqp 库也有类似的问题,最终不得不强制执行 SSL 的帧顺序。
  • @tjean 如果你增加客户端和服务器上的 frame_max 会怎样?

标签: python ssl rabbitmq pika


【解决方案1】:

有完全相同的问题 - 使用 monkey patching from gevent 修复它

from gevent import monkey
monkey.patch_all()

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-07-23
    • 2014-12-20
    • 1970-01-01
    • 2019-03-31
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多