我使用 Ubuntu14.04、Rail 5、RabbitMQ(服务器 3.6.5)、Bunny 2.5.1
我实现了 Rabbit 来服务,并尝试对其进行测试。
我写了下一个红宝石脚本:
def rabbit_test
s_time = Time.current
10_000.times do |n|
Mq::RabbitService.new('test_queue').publish(n.to_s)
end
p "###############################"
p "RabbirMQ Diff: #{Time.current - s_time}"
p "###############################"
end
其中Mq::RabbitService
服务包括初始化兔子、连接、创建队列等
我运行的其他终端
Mq::RabbitService.new('test_queue').subscribe
一开始效果很好,但我只能推送 827 条消息(我不知道为什么是 837,但它始终是相同的数字)。
之后我的发布者提出错误:
[8] pry(main)> rabbit_test
E, [2016-08-19T15:17:02.445820 #6409] ERROR -- #<Bunny::Session:0x6fb39858 oleg@192.168.1.67:5672, vhost=/, addresses=[192.168.1.67:5672]>: Got an exception when receiving data: IO timeout when reading 7 bytes (Timeout::Error)
Timeout::Error: IO timeout when reading 7 bytes
from /home/oleg/.rvm/gems/ruby-2.3.1/gems/bunny-2.5.1/lib/bunny/cruby/socket.rb:52:in `rescue in read_fully'
我也尝试过:添加具有管理员权限的新用户,尝试添加 IP 而不是localhost
地址(如192.168.0.11
)结果相同。
已编辑
我将我的服务用于 RabbitMQ 连接Mq::RabbitService gist
但
def rabbit_test
s_time = Time.current
1_000.times do |n|
connection = Bunny.new(host: '192.168.1.67', port: 5672, user: 'oleg', password: '111111').start
channel = connection.create_channel
channel.queue('queue_name', auto_delete: true)
exchange = channel.default_exchange
exchange.publish(n.to_s, routing_key: 'queue_name')
channel.close
end
p "###############################"
p "RabbirMQ Diff: #{Time.current - s_time}"
p "###############################"
end
也不行
也许有人知道我做错了什么?
谢谢