我已经使用RabbitMQ(AMQP)与我的红宝石项目一段时间了,反正我刚刚听说过RabbitMQ集群,任何人都可以简单介绍一下这个简单的话,我需要知道运行普通RabbitMQ服务器和RabbitMQ集群,为什么我需要它,以及如何实现它。什么是RabbitMQ集群?
我需要我的解决方案具有可扩展性和处理这么多的要求,我想下面的实现的,我很想知道如何实现这样的事情:
HA proxy->3 Clustered RabbitMQ instances
什么是最快的方法以及最好的ruby web服务器选择来处理请求,并简单地解析它并将其发送到适当的队列。
与我目前的实现我使用瘦服务器,并完成类似以下,但在寻找更好的架构,它是速度更快,更具可扩展性:
require "bunny"
require "thin"
@amqp ||= Bunny.new(:logging => false)
@amqp.start
@direct_exchange ||= @amqp.exchange('')
app = Proc.new do |env|
req = Rack::Request.new(env).params
command = req['command'].strip rescue "no command"
number = req['number'].strip rescue "no number"
if command =~ /\A(create|c|r|register)\z/i
@direct_exchange.publish(number, :key => "create")
elsif command =~ /\A(update|u)\z/i
@direct_exchange.publish(number , :key => "refresh")
end
[200, {'Content-Type' => "text/plain"} , command ]
end
Rack::Handler::Thin.run(app, :Port => 4001)
我敢肯定有更好的执行。
任何帮助/提示将不胜感激。
在此先感谢
感谢Davorin在这里的解释,但我没有得到有关RabbitMQ节点的部分,我应该为每个HTTP服务器获取新节点吗?有没有简单的演示或教程来显示?谢谢 –
嗨,我已经扩大我的回答,澄清您的评论中提出的问题。 –