【发布时间】:2013-08-10 05:02:05
【问题描述】:
我正在尝试设置一个基于 Spring 的 Java 应用程序,该应用程序使用本地安装的 RabbitMQ 服务器在节点之间传递消息。如您所知,rabbitmq.config 文件可用于配置各种参数,并由运行 Rabbit 服务器的底层 Erlang 节点加载。
我的问题是我有一个要求,有些配置需要静态,有些需要动态,具体来说,我需要能够重新配置由于用户交互,有时在 Rabbit 服务器上运行的铲子(即我需要以编程方式修改配置文件并重新启动 rabbit 服务器以使其生效),但是,我 不 每次都想重写静态配置(特别是不想让java代码读取)。
我想我通过阅读 Erlang 配置文件手册 (http://www.erlang.org/doc/man/config.html) 找到了解决方案,该手册解释了如何使用一个指向另一个配置文件的配置文件,以便 Erlang 合并两个文件的配置。不幸的是,它似乎根本不起作用,我在网上找不到有关此问题的任何参考。
我正在使用 RabbitMQ 3.1.3 和 Erlang 5.10/OTP R16 在 Windows 7 x64 操作系统上对此进行测试。
第一个配置文件:
[
{'rabbit', [
{'tcp_listeners', [
5672
]},
{'default_vhost', <<"/">>}
]}, "C:\\Users\\itay\\Desktop\\RabbitMQ\\rabbitmq2.config"
].
第二个配置文件:
[
{'rabbit', [
{'default_user', <<"guest">>},
{'default_pass', <<"guest">>}
]}
].
我也尝试使用单个反斜杠或位串作为路径,但这似乎并不重要。
在cmd中运行服务器的输出是:
{"could not start kernel pid",application_controller,"invalid config data: invalid application name: \"C:\\Users\\itay\\Desktop\\RabbitMQ\\rabbitmq2.config\""}
Crash dump was written to: erl_crash.dump
could not start kernel pid (application_controller) (invalid config data: invalid application name: "C:\\Users\\itay\\Desktop\\RabbitMQ\\rabbitmq2.config")
我们将不胜感激任何类型的解决方案或帮助,
谢谢。
【问题讨论】:
标签: erlang rabbitmq rabbitmq-shovel