我有一个拥有双节点集群的java应用程序。我的目标是确保集群的所有节点都在同一时区。
TimeZone tz = Calendar.getInstance().getTimeZone();
String slaveTimeZone = tz.getDisplayName(false, TimeZone.SHORT);
代码首次正确读取时区,例如IST。现在我去更改符号链接,将本地时间指向CST,但除非我重新启动应用程序,否则java应用程序不会获取更新的时区。
我做得对吗?或者我错过了一步?
答案 0 :(得分:0)
如果您的应用程序仍在访问该目录,则可能无法识别出存在具有相同名称的新目录。
Linux shell的简单示例
会话1 cd~ / tmp mkdir数据 cd数据 echo foo>酒吧 猫吧
会话1中的输出
foo
会话2
cd ~/tmp
mv data/ data.old
mkdir data
cd data
echo baz > bar
输出会话2
baz
回到会话1,我们仍在目录〜/ tmp / data
cat bar
输出会话1
foo
原因是。只要您的应用程序使用原始data
目录,它就只能看到原始data
目录的inode。只有在离开({1}}目录后,新data
目录中的更改才会显示在您的应用程序中(在会话1中)。