Создать `FileOutputStream` из местоположения на удаленном сервере - PullRequest
0 голосов
/ 01 ноября 2019

Я пытаюсь создать блокировку транс-JVM. Для этого я хотел бы создать java.io.FileOutputStream из местоположения на удаленном сервере Linux, таком как этот:

some_remote_server.mybiz.com:/tmp/.lock

примерно так:

String locStr = "???"
FileOutputStream fos = new FileOutputStream(locStr)
FileLock fl = fos.getChannel().tryLock()

как мне заполнить ????

1 Ответ

1 голос
/ 01 ноября 2019

Нет способа создать FileOutputStream непосредственно в удаленном местоположении. У вас есть несколько вариантов.

  • Используйте что-то вроде NFS, чтобы смонтировать файловую систему на удаленном сервере в локальной файловой системе, в которой работает JVM
  • Использовать HTTP API на вашемудаленный сервер вместо файловой системы
  • Используйте что-то вроде ZooKeeper, которое является «реальным» решением для управления распределенными блокировками
  • Используйте блокировку в вашей базе данных, которая будет похожа на ZooKeeper. Например, PostgreSQL позволяет создавать блокировки с помощью SELECT FOR UPDATE.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...