rabbitmq-priority-queue插件安装问题

时间:2014-10-30 13:17:38

标签: java rabbitmq priority-queue amqp

我尝试在运行rabbitmq 3.4.0的ubuntu 12.04计算机上安装rabbitmq-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--(就像所有其他插件一样)

我注意到当我启用插件时,我得到以下输出:

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

Applying plugin configuration to rabbit@<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.

但是当跑步&#39; sudo rabbitmq-plugins list&#39;我明白了:

$ sudo rabbitmq-plugins list
 Configured: E = explicitly enabled; e = implicitly enabled
 | Status:   * = running on rabbit@benny-laptop
 |/
[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 *],看起来插件已启用。 我不确定该插件是否已正确启用,或者我可能无法正确理解插件。请指教。

1 个答案:

答案 0 :(得分:4)

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

你可以升级Erlang(Erlang Solutions从here提供12.04的R16B后端)或者自己编译插件(不适合胆小的人)。

与此同时,我会看到收到错误信息以说出更聪明的事情。