【问题标题】:Rabbitmq can't send newletters when over 1000 recipients当超过 1000 个收件人时,Rabbitmq 无法发送通讯
【发布时间】:2015-10-28 08:52:39
【问题描述】:

我有一个 Rabbitmq 服务器,我希望发送通讯。问题是我正在使用 .csv 文件上传收件人,如果文件超过 1000 行,则会发生错误。

不知何故,我怀疑以下行有问题:

MQ.fanout(exchange).publish(Marshal.dump(data))

消息没有为队列传输或者我不知道。

我能做的是:我必须删除实际的“卡住”项目,因为在删除之前我无法发送任何其他时事通讯提要。我删除后,其余的时事通讯将完美发送。

编辑:

日志没有显示任何错误。但是,在将日志设置为较低的位置后,我得到了这个:

/var/log/rabbitmq/error.log

2015-10-28 10:34:33.353 [error] <0.1182.0> Error on AMQP connection <0.1182.0> (127.0.0.1:45994 -> 127.0.0.1:5672, vhost: '/bposted', user: 'bposted', state: running), channel 0:
{amqp_error,connection_forced,"broker forced connection closure with reason 'shutdown'",none}

2015-10-28 10:52:11.336 [error] <0.364.0> Error on AMQP connection <0.364.0> (127.0.0.1:46042 -> 127.0.0.1:5672, vhost: '/bposted', user: 'bposted', state: running), channel 1:
{amqp_error,frame_error,"type 3, all octets = <<>>: {frame_too_large,4319180,131064}",none}

2015-10-28 10:52:14.342 [error] <0.364.0> closing AMQP connection <0.364.0> (127.0.0.1:46042 -> 127.0.0.1:5672):
fatal_frame_error

这可能是一个线索?

【问题讨论】:

  • 你检查日志了吗?
  • 是的,请检查帖子
  • 您使用的是哪个客户端?
  • {rabbit,"RabbitMQ","3.5.6"} ?不知道,真的很抱歉,我继承了服务器,以前从未见过这样的东西
  • 哦,是的,它在红宝石环境中:(

标签: queue rabbitmq limit


【解决方案1】:
{frame_too_large,4319180,131064}

尝试增加frame_max 参数,如此处所述https://www.rabbitmq.com/configure.html

[
  {rabbit, [
     {frame_max, 4319180},
    ]
  } 
].

【讨论】:

  • 为 frame_max 做了 50000000,但现在出现了这个错误:==> /var/log/rabbitmq/error.log AMQP 连接 错误(127.0.0.1:46454 -> 127.0.0.1:5672,vhost:'/bposted',用户:'bposted',状态:运行),通道 1:{ amqp_error,frame_error,"type 3, all octets = >: {frame_too_large,1542718,131064}",none} 2015-10-28 11:42:46.101 [错误] 关闭 AMQP 连接 (127.0.0.1:46454 -> 127.0.0.1:5672): fatal_frame_error
  • 顺便说一句,这是使用 Ruby 安装了 5 年的服务器,甚至没有 gem 文件,所以我怀疑它是从源代码安装的:/
【解决方案2】:

最终我们找到了解决方案。基本上就是 CHAPa 所说的,rabbitmq 能够接收比标准更大的帧(我们将 frame_max 设置为 0)。但找不到传递信息的 AMQP 文件。这是我们找到它的地方:

/opt/ruby-enterprise-1.8.7-2010.02/lib/ruby/gems/1.8/gems/amqp-0.7.0/lib/amqp/client.rb

并且必须手动将 frame_max 值更改为 0。从这一点来看,它就像一个魅力。 :) 谢谢你的建议。

顺便说一句:如果我们报废这台服务器时由我负责,我不会升级它,也不会安装另一个 Rabbitmq 服务器。 PHPlist 是我的风格 :) 请投票给它,这样当有人搜索它时它就可以排在首位。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2013-07-07
    • 2011-12-26
    • 2011-09-03
    相关资源
    最近更新 更多