RabbitMQ - MQTT适配器hipe编译

时间:2014-10-30 07:08:01

标签: rabbitmq mqtt hipe

我在配置中启用了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编译的?

由于

2 个答案:

答案 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,因此您需要使用额外的模块扩展它。