Java 从远程服务器中的某个位置创建“FileOutputStream”
我正在尝试创建一个跨JVM锁。为此,我想在远程linux服务器的某个位置创建一个Java 从远程服务器中的某个位置创建“FileOutputStream”,java,locking,Java,Locking,我正在尝试创建一个跨JVM锁。为此,我想在远程linux服务器的某个位置创建一个java.io.FileOutputStream,例如: some_remote_server.mybiz.com:/tmp/.lock 像这样: String locStr = "???" FileOutputStream fos = new FileOutputStream(locStr) FileLock fl = fos.getChannel().tryLock() 如何填写??无法直接在远程位置创建文件输
java.io.FileOutputStream
,例如:
some_remote_server.mybiz.com:/tmp/.lock
像这样:
String locStr = "???"
FileOutputStream fos = new FileOutputStream(locStr)
FileLock fl = fos.getChannel().tryLock()
如何填写
?
?无法直接在远程位置创建文件输出流。不过你有一些选择
- 使用类似NFS的seomthing在JVM运行的本地文件系统的远程服务器上装载文件系统
- 在远程服务器上使用HTTP API而不是文件系统
- 使用ZooKeeper之类的工具,这是管理分布式锁的“真正”解决方案
- 在数据库中使用锁,这类似于ZooKeeper。例如,PostgreSQL允许您使用
SELECT For UPDATE
进行锁定
谢谢你,August!我的问题基于一个Windows文件共享服务器(\\server\dir)。没有提到将其装载到本地文件系统。我想知道是否有一种方法可以像您的第一个项目符号那样安装到本地文件系统。AFAIK,当您在Windows上与\\server\dir
通话时,Windows会在您访问它之前将其作为本地文件系统安装,并进行凭据检查等