2012-03-27 49 views
0

在Linux系统上,我需要部署具有硬编码到应用中的外部数据和Web服务器名称的主机名的Java进程,例如, “mailserver”和“ftpserver”。在不同主机上部署时,我们当然可以使用/ etc/hosts来允许此应用程序的每个部署使用不同的远程服务器作为其“mailserver”或“ftpserver”。进程对同一主机名使用不同的IP地址

现在,我们希望将多个应用程序部署整合到一台主机上。但是,每个部署仍然需要指向它自己的“mailserver”或“ftpserver”,并且该整合主机的/ etc/hosts无法使用,因为它由应用程序的所有实例共享。

有没有一种方法可以在进程上下文中指定名称到IP的映射,而不使用/ etc/hosts甚至是DNS - 因为这些是系统范围的并且被所有进程共享?

我知道chroot会这样做,但我只是愿意将它作为最后的手段。

干杯, 狗

+0

您可以修改Java代码,以便以合理的方式确定服务器名称吗? – 2012-03-27 21:12:45

+0

那么,我宁愿在那个地方使用监狱。我是系统管理员,而不是开发人员。我不能为了我的生活理解他们以这种方式编写它们时的想法(没有连接池,没有配置文件来定义外部主机和URLS等) – 2012-03-27 21:38:49

+0

如果可行,更改软件。有些人不善于处理所有简单的事情,即使在很好地理解如何做好这些事情的情况下,也可能会让事情复杂化,至少同样糟糕。 – 2012-03-27 22:11:37

回答

0

您可以轻松地存储在部署特定文件的配置信息,并使用Properties在运行时加载它。

+0

谢谢,我应该补充说我无法触摸代码。我知道代码本身可以并且应该变得更加模块化,并且不会在应用程序中的硬编码名称的主机名解析上“卡住”。 – 2012-03-27 21:40:10

相关问题