对于我工作的公司,我们希望使用RabbitMQ作为我们的主要消息总线。 我们的想法是每个应用程序都使用自己的虚拟主机进行内部通信,通过铲子或联邦插件,我们可以在多个虚拟主机之间共享某些types的事件(甚至可能是多台机器(非集群)) 。 我们select每个虚拟主机的应用程序来分隔公共事件的内部通信,并保持每个应用程序的安全性可调。 根据RabbitMQ网站上发布的信息,当我不得不select铲子或者必须select联邦插件时,我不明白。 RabbitMQ何时使用以下说明 : 通常情况下,如果您需要比联邦提供的更多控制权,则可以使用铲子将互联网中的经纪人链接起来。 当我select联邦时,我错过的铁锹的细粒控制是什么? 在这一刻,我想我更喜欢联邦插件,因为我可以通过联邦插件提供的REST API自动进行虚拟主机通信。 在铲子的情况下,我将需要改变铲子configuration,并重新启动RabbitMQ实例,每次我们想共享一个虚拟主机之间的事件。 我的想法是否正确? 我们目前正在Windows上运行RMQ,客户端从.NET连接。 在不久的将来,Java / Perl / PHP客户端将join。 总结我的问题: 当我失踪的时候,我所错过的铁锹的细粒控制是什么? select联邦? 使用铁锹时,更改虚拟主机间通信的唯一方法是更改configuration文件并重新启动实例吗? 设置(每个应用程序的虚拟主机)是否有意义,或者我完全错过了这一点?
我想知道RabbitMQ可以在单个服务器上处理多less个最大队列? 它依赖于RAM吗? 它依赖于erlang过程吗?
RabbitMQ如何与Mule进行比较,我将使用面向消息的体系结构构build一个应用程序,而AMQP(RabbitMQ)则提供了我想要的所有东西,但是我对如此多的相关技术select以及类似的ESB概念感到困惑。 如果我不考虑其他select而做出select,我有疑问。 我大多清楚,RabbitMQ是一个消息代理,它可以帮助我调解生产者和消费者之间的消息(所有表单或发布订阅,我可以理解它是如何使用像twitter或Facebook更新等实际的例子) 什么是mule,如果我能用mule子来实现我在RabbitMQ上做的事情,我该认为mule子与RabbitMQ相似吗? mule子有一个不同于消息经纪人的目标吗? mule是否假定它有一个消息代理将消息传递给适当的mule监听器(我可以在RabbitMQ中轻松地编写监听器) mule是一个完整的Java基础系统(目前我用RabbitMQ做的实验花了我不到30分钟,写一个简单的RPC客户端服务器,客户端为C#和服务器为Java,这样的事情会在mule轻松地完成)。
如果我的理解是正确的,你不能真正的看兔子队列中的消息而不把它们拿出来放回去。没有办法使用rabbitmqctl来检查一个队列。 在某些debugging环境中,了解当前队列中的内容非常有用。 有没有办法看到这些消息? 另外,兔子的devise是什么使这个过程变得麻烦?
在RabbitMQ网站上有一个PHP客户端列表 。 我正在问这个问题,希望那些使用过这些的人能够在这里分享他们的经验。 例如 你有没有麻烦安装? 它是稳定的吗? 有没有任何性能问题? 文档/支持如何? 即使您刚使用过这些库,请分享您的经验。 作为参考,这里列出的一些客户: AMQP的PHP手册页 php-amqp – 由StudiVZ开发和使用的客户端,最初基于RabbitMQ-C php-amqplib是py-amqplib的一个端口 php-amqplib更新了php-amqplib的分支,以支持PHP 5.3 AMQP客户端的PECL版本 PS我知道“最佳…”是“主观的”,但这个问题的重点是收集经验,帮助人们对这些AMQP图书馆做出明智的决定。 请不要因为它里面有“最好”这个词而下意识地closures这个问题。 PPS我在RHEL 5上使用PHP 5.3。
这些amqp客户端库有什么区别? 哪一个是最值得推荐的? 主要区别是什么?
使用Python,Pika和RabbitMQ创build延迟(或停放)队列的最简单方法是什么? 我已经看到类似的问题 ,但没有看到Python。 在devise应用程序时,我发现这是一个有用的想法,因为它允许我们限制需要重新排队的消息。 总是有可能收到比你能处理更多的消息,可能是HTTP服务器速度太慢,或者数据库处于太大的压力之下。 在发生丢失消息的容忍度为零的情况下出现问题时,我也发现它非常有用,而重新排队无法处理的消息可以解决这个问题。 它也可能会导致问题的地方,一遍又一遍的邮件。 可能导致性能问题,并logging垃圾邮件。
在RabbitMQ / AMQP Java客户端中,可以创build一个AMQP.BasicProperties.Builder ,并使用它build()一个AMQP.BasicProperties实例。 这个构build的属性实例可以用于各种重要的事情。 这个构build器类有许多“构build器”风格的方法可用: BasicProperties.Builder propsBuilder = new BasicProperties.Builder(); propsBuilder .appId(???) .clusterId(???) .contentEncoding(???) .contentType(???) .correlationId(???) .deliveryMode(2) .expiration(???) .headers(???) .messageId(???) .priority(???) .replyTo(???) .timestamp(???) .type(???) .userId(???); 我正在寻找这些builer方法帮助“build立”的领域, 最重要的是,每个领域有什么有效的价值 。 例如,什么是clusterId ,它的有效值是什么? 什么是type ,它的有效值是什么? 等等。 我已经花了整整一个早上去淘洗: Java客户端文档 ; 和 Javadocs ; 和 RabbitMQ完整参考指南 ; 和 AMQP规范 在所有这些文档中,我找不到明确的定义(除了模糊地解释哪些priority , contentEncoding和deliveryMode是什么)每个这些字段是什么,以及它们的有效值是什么。 有人知道吗? 更重要的是,是否有人知道这些甚至logging在哪里? 提前致谢!
如果我在我的机器上安装了RabbitMQ,是否有办法从命令行创build消息队列,并将其绑定到某个交换机而不使用客户机? 我认为这是不可能的,但我想确定。
有谁知道是否有办法从客户端应用程序检查RabbitMQ队列中的消息数量? 我正在使用.NET客户端库。