2012-03-27 2 views
0

Linux 시스템에서는 응용 프로그램에 하드 코딩 된 외부 데이터 및 웹 서버 이름에 호스트 이름이있는 Java 프로세스를 배포해야합니다. "mailserver"및 "ftpserver". 다른 호스트에 배포 할 때 물론/etc/hosts를 사용하면이 응용 프로그램을 배포 할 때 "mailserver"또는 "ftpserver"에 대해 다른 원격 서버를 사용할 수 있습니다.프로세스가 동일한 호스트 이름에 대해 서로 다른 IP를 사용합니다.

이제 여러 응용 프로그램 배포를 하나의 호스트에 통합하고자합니다. 그러나 각 배포는 여전히 자신의 "mailserver"또는 "ftpserver"를 가리켜 야하며이 통합 호스트의/etc/hosts는 모든 응용 프로그램 인스턴스에서 공유하므로 사용할 수 없습니다.

/etc/hosts 나 심지어 DNS를 사용하지 않고 프로세스의 컨텍스트에 이름 - IP 매핑을 지정하는 방법은 시스템 전체에 적용되고 모든 프로세스에서 공유되기 때문에 지정할 수 있습니까?

나는 chroot가 속임수를 쓰겠지만, 최후의 수단으로 만 그것을 기꺼이 사용한다는 것을 알고 있습니다.

건배, 개

+0

Java 코드를 수정하여 서버 이름을 적절한 방식으로 결정할 수 있습니까? –

+0

글쎄, 나는 그 시점에서 감옥을 사용하고 싶다. 저는 개발자가 아닌 sysadmin입니다. 나는 내 인생이 그들이 이런 식으로 썼을 때 생각했던 것을 이해할 수 없다. (연결 풀, 외부 호스트와 URL을 정의하는 .conf 파일이 없음) –

+0

가능하다면 소프트웨어를 바꾼다. 모든 단순한 일을 나쁘게하는 사람, 심지어 잘하는 사람을 잘 이해하는 사람이라 할지라도, 적어도 나쁘게는 복잡한 일을하는 것 같습니다. –

답변

0

은 쉽게 배포 특정 파일에 구성 정보를 저장하고 Properties를 사용하여 런타임에로드 할 수 있습니다.

+0

고마워, 나는 코드를 건드릴 수 없다고 덧붙여 야한다. 나는 그 코드 자체가 더 모듈화 될 수 있고 또 그렇게되어야하고, 애플 리케이션 내의 하드 코딩 된 이름에 대한 호스트 네임 해석에 "집착"하지 않는다는 것을 이해한다. –

관련 문제