引言
下文中的两个重要且极易混淆的名词做一个说明。
RabbitMQ Server:这个名词的意思是你安装rabbitmq-server-3.1.3.exe这种应用程序的结果,一般结果会产生在\RabbitMQ Server\rabbitmq_server-3.1.3这样的文件夹中。是RabbitMQ的全部实体。
RabbitMQ服务:这个词的意思是指它是一个Windows服务,可以启动,停止,重启等。这个服务可以在命令行下面有rabbitmq-service命令执行来得到。
RabbitMQ Server的配置
RabbitMQ是由RabbitMQ Server创建的一个Windows服务,而RabbitMQ Server也有自己的配置,而且这个配置是起基础作用的,会最先执行。
这个配置就是RabbitMQ的默认配置。
具体的配置文件是:\RabbitMQ Server\rabbitmq_server-3.1.3\ebin 中的rabbit_app.in和rabbit.app这两个文件。这里面有详细的基础配置,你如果要修改RabbitMQ的配置,直接在这里修改最好(前提是你别忘记把默认配置保存一份副本)。
以rabbit.app为例:
{application,rabbit,
[{description,"RabbitMQ"},
{id,"RabbitMQ"},
{vsn,"3.1.3"},
{modules,
[app_utils,background_gc,credit_flow,delegate,delegate_sup,dtree,
file_handle_cache,gatherer,gen_server2,gm,gm_soak_test,
gm_speed_test,gm_tests,lqueue,mirrored_supervisor,
mirrored_supervisor_tests,mnesia_sync,mochijson2,mochinum,pg2_fixed,
pg_local,pmon,priority_queue,rabbit,rabbit_access_control,
rabbit_alarm,rabbit_amqqueue,rabbit_amqqueue_process,
rabbit_amqqueue_sup,rabbit_auth_backend,
rabbit_auth_backend_internal,rabbit_auth_mechanism,
rabbit_auth_mechanism_amqplain,rabbit_auth_mechanism_cr_demo,
rabbit_auth_mechanism_plain,rabbit_autoheal,rabbit_backing_queue,
rabbit_backing_queue_qc,rabbit_basic,rabbit_binary_generator,
rabbit_binary_parser,rabbit_binding,rabbit_channel,
rabbit_channel_sup,rabbit_channel_sup_sup,rabbit_client_sup,
rabbit_command_assembler,rabbit_connection_sup,rabbit_control_main,
rabbit_ctl_usage,rabbit_direct,rabbit_disk_monitor,
rabbit_error_logger,rabbit_error_logger_file_h,rabbit_event,
rabbit_exchange,rabbit_exchange_decorator,rabbit_exchange_type,
rabbit_exchange_type_direct,rabbit_exchange_type_fanout,
rabbit_exchange_type_headers,rabbit_exchange_type_invalid,
rabbit_exchange_type_topic,rabbit_file,rabbit_framing,
rabbit_framing_amqp_0_8,rabbit_framing_amqp_0_9_1,rabbit_guid,
rabbit_heartbeat,rabbit_limiter,rabbit_log,rabbit_memory_monitor,
rabbit_mirror_queue_coordinator,rabbit_mirror_queue_master,
rabbit_mirror_queue_misc,rabbit_mirror_queue_mode,
rabbit_mirror_queue_mode_all,rabbit_mirror_queue_mode_exactly,
rabbit_mirror_queue_mode_nodes,rabbit_mirror_queue_slave,
rabbit_mirror_queue_slave_sup,rabbit_mirror_queue_sync,rabbit_misc,
rabbit_mnesia,rabbit_msg_file,rabbit_msg_store,
rabbit_msg_store_ets_index,rabbit_msg_store_gc,
rabbit_msg_store_index,rabbit_net,rabbit_networking,
rabbit_node_monitor,rabbit_nodes,rabbit_parameter_validation,
rabbit_plugins,rabbit_plugins_main,rabbit_plugins_usage,
rabbit_policy,rabbit_policy_validator,rabbit_prelaunch,
rabbit_queue_collector,rabbit_queue_index,rabbit_reader,
rabbit_registry,rabbit_restartable_sup,rabbit_router,
rabbit_runtime_parameter,rabbit_runtime_parameters,
rabbit_runtime_parameters_test,rabbit_sasl_report_file_h,rabbit_ssl,
rabbit_sup,rabbit_table,rabbit_tests,rabbit_tests_event_receiver,
rabbit_trace,rabbit_types,rabbit_upgrade,rabbit_upgrade_functions,
rabbit_variable_queue,rabbit_version,rabbit_vhost,rabbit_vm,
rabbit_writer,supervisor2,supervisor2_tests,tcp_acceptor,
tcp_acceptor_sup,tcp_listener,tcp_listener_sup,test_sup,
vm_memory_monitor,worker_pool,worker_pool_sup,worker_pool_worker]},
{registered,
[rabbit_amqqueue_sup,rabbit_log,rabbit_node_monitor,rabbit_router,
rabbit_sup,rabbit_tcp_client_sup,rabbit_direct_client_sup]},
{applications,[kernel,stdlib,sasl,mnesia,os_mon,xmerl]},
{mod,{rabbit,[]}},
{env,
[{hipe_compile,false},
{tcp_listeners,[5673]},
{ssl_listeners,[]},
{ssl_options,[]},
{vm_memory_high_watermark,0.4},
{disk_free_limit,1000000000},
{msg_store_index_module,rabbit_msg_store_ets_index},
{backing_queue_module,rabbit_variable_queue},
{frame_max,131072},
{heartbeat,600},
{msg_store_file_size_limit,16777216},
{queue_index_max_journal_entries,65536},
{default_user,<<"guest">>},
{default_pass,<<"guest">>},
{default_user_tags,[administrator]},
{default_vhost,<<"/">>},
{default_permissions,[<<".*">>,<<".*">>,<<".*">>]},
{cluster_nodes,{[],disc}},
{server_properties,[]},
{collect_statistics,none},
{collect_statistics_interval,5000},
{auth_mechanisms,['PLAIN','AMQPLAIN']},
{auth_backends,[rabbit_auth_backend_internal]},
{delegate_count,16},
{trace_vhosts,[]},
{log_levels,[{connection,info}]},
{ssl_cert_login_from,distinguished_name},
{reverse_dns_lookups,false},
{cluster_partition_handling,ignore},
{tcp_listen_options,
[binary,
{packet,raw},
{reuseaddr,true},
{backlog,128},
{nodelay,true},
{linger,{true,0}},
{exit_on_close,false}]}]}]}.
从默认用户名,密码,端口,日志级别等都有详细配置。
如果这里的配置修改了,在Windows下,你需要
重新安装RabbitMQ服务
重装服务具体步骤如下(而不是重启服务):
新建环境变量:RABBITMQ_SERVER
值为你安装后的RabbitMQ Server的目录(例如):D:\My-Softwar-Installed\RabbitMQ Server\rabbitmq_server-3.1.3
以管理员身份运行:
rabbitmq-service remove
rabbitmq-service install
rabbitmq-service start
这样RabbitMQ Server就会重新创建并启动一个RabbitMQ服务在系统中运行:
如果你没有创建环境变量,虽然执行不了,但是依然可以使用批处理文件来达到同样的效果。在目录:D:\My-Softwar-Installed\RabbitMQ Server\rabbitmq_server-3.1.3\sbin
下面,你可以以管理员命令行执行:
rabbitmq-service.bat remove
rabbitmq-service.bat install
rabbitmq-service.bat start
来达到同样的效果。
官方配置方法
然而
官方网站告诉你你有三种方式来定制你的配置需求:
1 环境变量
2 配置文件rabbitmq.config
3 运行时参数运行时参数可以在运行时调整RabbitMQ的配置
其实都不怎么靠谱,你最好别用。
浏览器界面
浏览器访问的端口当然还是原来的端口15672,因为这个是RabbitMQ Server对浏览器提供的端口,是死的,你无法配置。你能配置的只是RabbitMQ Server对client开放的端口。
日志配置
RabbitMQ服务在运行的时候产生的日志在:
Windows 8 用户名carea:C:\Users\carea\AppData\Roaming\RabbitMQ\log
Windows Server 2008 R2:C:\User\Administrator\AppData\Roaming\RabbitMQ\log
目录下,具体根据各个系统和个人的电脑而有所区别。
如果RabbitMQ服务长期运行,日志可能爆盘!此时只需要修改RabbitMQ Server中log level对应的配置即可。
具体参考RabbitMQ官方配置文档中的参数log_levels的相关说明。