Что лучшие практики расценивают несколько JVMs на сервере?

Это - простой вопрос, таким образом, я сохраню ответ простым.

Необходимые компоненты, также:

* 1 x crossover cable; or
* 2 x normal UTP cable and 1 x switch

Нормальный кабель UTP является обычно синим - он также назвал кабель LAN или кабель Ethernet. Я собираюсь сделать предположение, что Вы знаете то, что переключатель - немного поля, полного портов UTP, которые включают несколько компьютеров. Перекрестный кабель является специальным видом кабеля UTP, где он соединен проводом немного по-другому.

Физическая конфигурация, также:

* Connect both computers directly with the crossover cable; or
* Use the normal cables to plug both computers into the switch.

Логическая конфигурация:

Снова, я не собираюсь входить в тонкости разделения на подсети. Просто используйте эти настройки:

* PC1: IP = 192.168.0.10, Netmask: 255.255.255.0
* PC2: IP = 192.168.0.11, Netmask: 255.255.255.0

Весело проведите время играя!

2
задан 11 March 2015 в 07:23
8 ответов

Идеально необходимо установить две переменные среды:

export JAVA_HOME=/java/location
export PATH=$JAVA_HOME/bin:$PATH

Можно или создать различные сценарии, чтобы запустить различные программы и установить эти переменные по-другому в каждом случае. Или можно настроить каждое приложение, чтобы запуститься под различной учетной записью пользователя и установить эти переменные в пользователях соответствующий сценарий запуска.

$JAVA_HOME/bin должен быть на первом месте на ПУТИ для предотвращения любых других двоичных файлов Java на пути по умолчанию, выполняемом вместо этого.

2
ответ дан 3 December 2019 в 09:13

Подход символьной ссылки хорош, но полагайте, что Вы не могли бы хотеть обновлять jvm для всех приложений сразу.

Если Вы имеете дело с важнейшими приложениями, то Вы могли бы хотеть иметь одну JVM на приложение или иметь каждую точку приложения непосредственно к конкретной версии JVM.

Например, где я работаю существует приложение (назовите его A), который конкретно работает и был протестирован против определенного JDK и версии (JDK 1.5.0_03), более поздние версии, как известно, повреждают его.

Если бы приложение A и другое приложение B и указали на символьную ссылку, названную java-5, и затем при развертывании приложения B я решил обновить java-5 для указания на JDK 1.5.0_14, то приложение A повредилось бы.

1
ответ дан 3 December 2019 в 09:13

Виртуализация состоит в том, как мы обрабатываем ее, где я работаю.

обновление - Извините, если я не был ясен - мы размещаем каждое приложение на его собственном виртуальном сервере только с версией JVM, которой оно требует

4
ответ дан 3 December 2019 в 09:13
  • 1
    И если Вы объединяете виртуализированные серверы в пул что затем? –  ojblass 30 March 2009 в 06:51
  • 2
    Извините, если я wasn' t ясный - Вы размещаете каждое приложение на его собственном виртуальном сервере только с версией JVM, которой оно требует. –   30 March 2009 в 07:16

Как упомянуто в, "Какова лучшая практика для обработки определенной для системы информации при управлении версиями?", путь JVM может быть частью de-variabilization фазы.
Т.е. Ваш конфигурационный файл может быть переписан в:

  • время развертывания, заменяя некоторые переменные определенными для среды значениями
  • время выполнения (в запуске), заменяя некоторые другие переменные определенными для сессии значениями.

Это означает, только в начале приложения, мы вставляем, все программируют запрос к базе данных, которая содержит значения, которые могут измениться от сессии до сессии.
Заключительный путь JVM является одним из них.
Запрос основан на сервере (или пул серверов) имя, и на названии программы.

0
ответ дан 3 December 2019 в 09:13
  • 1
    Очень основательная информация. После того как вариант нормализован, проблема все еще о самом поле - то, как рекламировать то местоположение. –  ojblass 31 March 2009 в 02:34

В *отклоняют базирующиеся системы, можно использовать гибкие ссылки. Затем просто запишите свой сценарий запуска для использования наименее определенной версии, которую он предпочитает. JRE_HOME =/usr/lib/jre/java-5

/usr/lib/jre/...

java -> java-5
java-4 -> java-4-sun
java-5 -> java-5-sun
java-6 -> java-6-sun

java-4-sun -> java-4-sun-1.4.0.0
java-5-sun -> java-5-sun-1.5.0.14
java-6-sun -> java-6-sun-1.6.0.10

java-4-sun-1.4.0.1
java-5-sun-1.5.0.12
java-5-sun-1.5.0.14
java-6-sun-1.6.0.10

Это - метод, используемый многими основанными на Linux системами. см./etc/alternitives и/usr/lib/jre для примеров.

В Windows Вы могли использовать переменные среды, чтобы сделать что-то подобное. Затем Ваш сценарий запуска мог 'установить JRE_HOME = % % JAVA_5'.

0
ответ дан 3 December 2019 в 09:13
  • 1
    Я предполагаю, что мог переместить различные ссылки с символьными ссылками и действительно иметь то, что я хочу. Это - достойное суждение. Я должен буду исследовать реализацию альтернатив в Linux.Спасибо за ответ. –  ojblass 31 March 2009 в 02:36
  • 2
    AFAIK, переменная среды JAVA_HOME предназначена для содержания местоположения JDK, в то время как переменная JRE_HOME должна указать на местоположение JRE... –   1 April 2009 в 17:02
  • 3
    Верный. I' m всунутый режим JDK. –   1 April 2009 в 17:32

У команд приложения не может быть его оба пути.

Если приложение только поддерживает одну версию JRE, то это должно поставляться с ним. Это должно быть установлено вместе с приложением.

Я не вижу, почему они хотели бы это любой другой путь. Выполнение его, этот путь гарантирует, что точная версия JRE они протестировали свое приложение с, является тем же, Вы развертываетесь в производстве. Для размышления Вы не должны "заботиться" о JVM, хороший идеал, когда Вы находитесь в школе, и Java является "записью однажды, выполните anyhere". Но откровенно что представление не выравнивается с реальным миром, где Java является на самом деле "записью однажды, тест везде".

Это был бы кошмар поддержки для команды приложения для заботы о конкретных вопросах JVM. Устраните ту неуверенность, высосите ее и используйте JVM на приложение. Дисковое пространство является дешевым.

0
ответ дан 3 December 2019 в 09:13
  • 1
    Я хочу, чтобы applicaiton команды смогли выбрать среди доступных установленных опций, не вводя меня к конкретному местоположению. Наличие нескольких JVM' s на поле вынудил бы меня применить патчи в нескольких местоположениях, таким образом, я не сделаю этого. –  ojblass 31 March 2009 в 02:32

Мы просто используем символьные ссылки на версии, которые мы хотим использовать. У нас есть много машин, которым установили Java в различных местоположениях, и приложение не должно должно быть знать, где они находятся на различных полях.

Другая опция состоит в том, чтобы использовать Java webstart для Вас приложения. В этом случае это даже загрузит и установит правильную версию, если у Вас не будет его.

0
ответ дан 3 December 2019 в 09:13
  • 1
    Мы хотим избежать автоматических обновлений до машин.Спасибо за ответ. –  ojblass 31 March 2009 в 02:29

Я вставил все/opt/java-version использование извлеченной загрузки с Sun (сохраняющий имя каталога по умолчанию). Приложения, обычно выполняемые как их собственный пользователь и, запущены и остановлены с помощью init сценария, который устанавливает все переменные для того приложения включая $JAVA_HOME.

Если у меня есть приложение, я хочу всегда использовать "текущую" установку в/, выбирают, я создаю символьные ссылки в/, выбирают и высказывают init мнение сценария к той символьной ссылке. Символьная ссылка затем корректируется, когда новая Среда выполнения Java установлена.

0
ответ дан 3 December 2019 в 09:13

Теги

Похожие вопросы