请问我的春节休息控制器通过@Autowired
和@Service
类使用@Service
类有一个关键部分 - 在一个实例字段话题 - 安全分布式弹簧安置服务
private final Object modifyIndexLock = new Object();
做好准备分布式部署同步,或者我需要同步在其他方面呢?
基础资源是Lucene索引编写器,在任何时间点,只能打开一个编写器。试图在已经打开作者的情况下尝试打开作家的线程将失败。我不希望我的线程失败,但等待。
代码适用于单个服务器应用程序部署,但我想它在分布式环境中会失败,因为在每个JVM中会有多个@Service
实例导致不同的锁,而底层受保护的资源是单一的。
synchronized(modifyIndexLock){
//Open & use writer the close
}
一个作家池不可用,但只有一个实例。
感谢您提供关于使用DB锁定和zookeeper的想法。它的推荐[这里](https://stackoverflow.com/questions/1059580/distributed-lock-service)。目前,我正考虑在DB上留下一个标志,因为这似乎是更简单的解决方案。 –