2014-10-30 60 views
2

我试图在运行rabbitmq 3.4.0的我的ubuntu 12.04机器上安装rabbitmq-priority-queuerabbitmq-priority-queue插件安装问题

根据http://www.rabbitmq.com/installing-plugins.html指示,我已经复制下载的文件rabbitmq_priority_queue-3.4.x-3431dc1e.ez到/usr/lib/rabbitmq/lib/rabbitmq_server-3.4.0/plugins 并通过启用插件命令:

$ sudo rabbitmq-plugins enable rabbitmq_priority_queue 
运行在 https://github.com/rabbitmq/rabbitmq-priority-queue/blob/master/examples/java/src/com/rabbitmq/examples/PriorityQueue.java 示例应用程序,我得到了以下输出时

Sent message with priority 0 
Sent message with priority 5 
Sent message with priority 10 
Received message with priority 0 
Received message with priority 5 
Received message with priority 10 

虽然我期望的输出是:

Sent message with priority 0 
Sent message with priority 5 
Sent message with priority 10 
Received message with priority 10 
Received message with priority 5 
Received message with priority 0 

这意味着,首先消耗最高优先级的消息。

我试着做以下(无工作):

  • 重启兔
  • 插件
  • 删除队列(因此​​它由应用程序重新创建)
  • 启用已禁用,
  • 改变.ez文件权限-rw-R - R--(就像所有其他的插件)

我注意到,当我使plugi n个I得到以下输出:

$ sudo rabbitmq-plugins enable rabbitmq_priority_queue 
The following plugins have been enabled: 
    rabbitmq_priority_queue 

Applying plugin configuration to [email protected]<my laptop name>...WARNING: module rabbit_priority_queue not found, so not scanned for boot steps. 
WARNING: module rabbit_priority_queue not found, so not scanned for boot steps. 
started 1 plugin. 

但运行 '须藤的RabbitMQ-插件列表' 时,我得到:

$ sudo rabbitmq-plugins list 
Configured: E = explicitly enabled; e = implicitly enabled 
| Status: * = running on [email protected] 
|/ 
[e*] amqp_client      3.4.0 
[ ] cowboy       0.5.0-rmq3.4.0-git4b93c2d 
[ ] eldap        3.4.0-gite309de4 
[e*] mochiweb       2.7.0-rmq3.4.0-git680dba8 
[ ] rabbitmq_amqp1_0     3.4.0 
[ ] rabbitmq_auth_backend_ldap  3.4.0 
[ ] rabbitmq_auth_mechanism_ssl  3.4.0 
[ ] rabbitmq_consistent_hash_exchange 3.4.0 
[ ] rabbitmq_federation    3.4.0 
[ ] rabbitmq_federation_management 3.4.0 
[E*] rabbitmq_management    3.4.0 
[e*] rabbitmq_management_agent   3.4.0 
[ ] rabbitmq_management_visualiser 3.4.0 
[ ] rabbitmq_mqtt      3.4.0 
[E*] rabbitmq_priority_queue   3.4.x-3431dc1e 
[ ] rabbitmq_shovel     3.4.0 
[ ] rabbitmq_shovel_management  3.4.0 
[ ] rabbitmq_stomp     3.4.0 
[ ] rabbitmq_test      3.4.0 
[ ] rabbitmq_tracing     3.4.0 
[e*] rabbitmq_web_dispatch    3.4.0 
[ ] rabbitmq_web_stomp    3.4.0 
[ ] rabbitmq_web_stomp_examples  3.4.0 
[ ] sockjs       0.3.4-rmq3.4.0-git3132eb9 
[e*] webmachine      1.10.3-rmq3.4.0-gite9359c7 

根据结果[E *]它看起来像被启用该插件。 我不确定该插件是否正确启用,或者我可能无法正确理解。请指教。

回答

4

啊。是。该“找不到模块”错误消息是误导性的。网站上提供的优先级队列插件的二进制版本是使用Erlang R15B编译的 - 但您的Ubuntu附带的Erlang版本是R14B04。所以我认为这是问题的根源。

你可以升级Erlang(Erlang解决方案报价为12.04的backports,从here开始),或者自己编译插件(不适合胆小的人)。

与此同时,我会着手让错误信息说出更智能的东西。