我尝试在运行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
表示首先使用优先级最高的消息。
我试图做以下事情(没有工作):
我注意到当我启用插件时,我得到以下输出:
$ 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 *],看起来插件已启用。 我不确定该插件是否已正确启用,或者我可能无法正确理解插件。请指教。
答案 0 :(得分:4)
阿。是。找不到&#34;模块&#34;错误消息具有误导性。网站上提供的优先级队列插件的二进制版本是使用Erlang R15B编译的 - 但是Ubuntu附带的Erlang版本是R14B04。所以我认为这是问题的根源。
你可以升级Erlang(Erlang Solutions从here提供12.04的R16B后端)或者自己编译插件(不适合胆小的人)。
与此同时,我会看到收到错误信息以说出更聪明的事情。