【发布时间】: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 会怎样?