我在配置中启用了hipe编译,如下所示:
[
{rabbit,
[
...
{hipe_compile, true}
]
},
{rabbitmq_mqtt,...
但重新启动rabbitmq之后,我在{hipe_modules}部分找不到rabbitmq_mqtt模块:
> rabbitmqctl report
{hipe_compile,true},
{hipe_modules,[rabbit_reader,rabbit_channel,gen_server2,rabbit_exchange,
rabbit_command_assembler,rabbit_framing_amqp_0_9_1,
rabbit_basic,rabbit_event,lists,queue,priority_queue,
rabbit_router,rabbit_trace,rabbit_misc,rabbit_binary_parser,
rabbit_exchange_type_direct,rabbit_guid,rabbit_net,
rabbit_amqqueue_process,rabbit_variable_queue,
rabbit_binary_generator,rabbit_writer,delegate,gb_sets,lqueue,
sets,orddict,rabbit_amqqueue,rabbit_limiter,gb_trees,
rabbit_queue_index,rabbit_exchange_decorator,gen,dict,ordsets,
file_handle_cache,rabbit_msg_store,array,
rabbit_msg_store_ets_index,rabbit_msg_file,
rabbit_exchange_type_fanout,rabbit_exchange_type_topic,mnesia,
mnesia_lib,rpc,mnesia_tm,qlc,sofs,proplists,credit_flow,pmon,
ssl_connection,tls_connection,ssl_record,tls_record,gen_fsm,
ssl]},
这是否意味着mqtt适配器不是hipe编译的?
由于
答案 0 :(得分:0)
您可以使用实际的Erlang
按模块进行验证$ rabbitmqctl eval 'rabbit_mqtt:module_info().'
此命令应输出相当长的选项列表,其中一部分是
{compile,
[{options,
[...
你应该看看模块是否是用hipe编译的。
答案 1 :(得分:0)
您可以使用希望编译的MQTT模块扩展配置项hipe_modules
。
这是列表http://hg.rabbitmq.com/rabbitmq-server/file/669a08de6e9e/ebin/rabbit_app.in#l65,因此您需要使用额外的模块扩展它。