Как влияет псевдонимы имени хоста на кеш апплета Java? - PullRequest
10 голосов
/ 27 апреля 2011

У меня есть два сервера с именами хостов comp1 и comp2.У меня также есть плавающий псевдоним (master), который динамически отображается на один из двух серверов.Я обслуживаю один и тот же апплет с обоих серверов.Клиенты обычно подключаются к master, но вполне допустимо подключаться к comp1 или comp2 напрямую.

Клиенты жалуются, что им всегда приходится ждать загрузки апплета (это довольно большой).Я думал, что как только клиент загрузит необходимые файлы jar, они будут кэшированы и больше не будут загружаться.Сначала я думал, что плагин клиента настроен на отсутствие кэширования, но я думаю, что нашел причину проблемы, хотя я ее не понимаю.

  1. Подключите клиент к master (который в настоящее время указывает на comp1) в первый раз.Надо дождаться загрузки банок.Это ожидается.
  2. Снова подключите клиента к master.Мне не нужно ждать загрузки банок.Это также ожидаемое / желаемое поведение.
  3. Подключение клиента к comp1.Надо дождаться загрузки банок.Я бы предпочел, чтобы это не происходило, поскольку это один и тот же сервер, но я могу понять почему, поскольку comp1 представляется клиенту совершенно другим хостом.
  4. Подключите клиента обратно к master.Опять же, я должен ждать загрузки всех банок. Это не то, что я ожидал. Банки должны были быть загружены уже в шагах 1 / 2.

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

Я должен отметить, что имя хоста master - это не просто псевдоним DNS.Это действительно другой IP-адрес, который comp1/comp2 динамически связывает / отменяет привязку во время работы приложения.

Можете ли вы объяснить, что я вижу здесь, или предложить какие-то пути для исследования?

1 Ответ

1 голос
/ 04 мая 2011

Авенус для исследования:

Это может быть следствием имени файла jar - например, если оно всегда загружается в% TMP% \ app.jar, тогда app.jarполучить топать каждый раз, когда вы посещаете сервер.

Возможные обходные пути:

  • Псевдоним файла на серверах, так что его можно получить как master.jar, compN.jar
  • Используйте 301 или 302, чтобы указать браузеру, что используется только одна исходная банка (вам может потребоваться подписать банку из-за политик того же происхождения)
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...