노드간에 메시지를 전달하기 위해 로컬로 설치된 RabbitMQ 서버를 사용하는 Spring 기반 Java 응용 프로그램을 설치하려고합니다. 여러분 중 일부는 이미 알고 있기 때문에 rabbitmq.config 파일은 다양한 매개 변수를 구성하는 데 사용할 수 있으며 Rabbit 서버가 실행되는 기본 Erlang 노드에 의해로드됩니다.RabbitMQ/Erlang 용 다중 구성 파일 사용 방법
내 문제는 내가 동적는, 특히, 나는 시간의 토끼 서버에서 실행되는 삽을 재구성 할 수 있어야 될 수있는 구성 중 일부는 정적해야하는 요구 사항과 어떤 요구를 가지고있다 (즉, 프로그래밍 방식으로 구성 파일을 수정하고 영향을 미치기 위해 토끼 서버를 재부팅해야합니다.) 그러나 은 매번 정적 구성을 다시 쓰려고합니다. 특히 자바 코드가 그것을 읽고 싶지 않기 때문에).
나는 Erlang 구성 파일 설명서 (http://www.erlang.org/doc/man/config.html)를 읽었을 때 한 가지 구성 파일을 사용하여 두 파일의 구성이 Erlang에 의해 병합된다는 것을 설명하는 해법이 있다고 생각했습니다. 불행히도 전혀 작동하지 않는 것 같아 온라인에서이 문제에 대한 참조를 찾을 수 없습니다.
RabbitMQ 3.1.3 및 Erlang 5.10/OTP R16을 사용하여 Windows 7 x64 OS에서 테스트하고 있습니다.
1 config 파일 :
[
{'rabbit', [
{'tcp_listeners', [
5672
]},
{'default_vhost', <<"/">>}
]}, "C:\\Users\\itay\\Desktop\\RabbitMQ\\rabbitmq2.config"
].
2 설정 파일 :
[
{'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이 ** 임베디드 ** 모드에서 실행될 때마다 항상 sys.config를 찾고'-config' 옵션을 무시합니다. 따라서 sys.config 파일이 병합 될 다른 파일을 가리킬 수있게되었습니다. ** 대화식 ** 모드에서는'-config' 옵션이 사용되며 병합이 지원되지 않습니다. 올바른 설명입니까? – Itay
두 번째 설정 파일과 함께 또 다른'-config' 플래그를 추가하려했으나 노드가 시작되지 않습니다 -이 출력을 봅니다 :'Conflicting -start_erl and -config options' 하나의 설정 파일이 지원되는 것처럼 보입니다 ... '-App ParVal' 인수만을 사용하여 삽을 구성하는 것이 실용적이지 않기 때문에 나에게 좋지 않습니다. – Itay
[start_erl] (http://www.erlang.org/doc/man/start_erl.html)은 ** 임베디드 ** 모드에서 Erlang을 시작하기위한 Windows 관련 도구입니다. 이 오류 메시지는'-config' 옵션이없는 명령 행에서 두 번째 설정 파일과 함께'-config'를 전달하고 있음을 의미합니다. 즉, 아마도 적절한 위치에 없을 것입니다. 스크립트를 수정 했습니까? 아니면'RABBITMQ_SERVER_START_ARGS'를 사용 했습니까? –