两个JVM上的单例

时间:2015-04-14 15:23:42

标签: java design-patterns

是否可以在两台JVM机器上为任何给定的类实现Singleton。 这里我的要求是在两台JVM机器上实现Singleton,让代码部署在两台机器上

3 个答案:

答案 0 :(得分:5)

没有。单例模式仅适用于单个JVM。

您可以使用其他方法(而不是单例)为多个大于1的JVM创建单个对象实例。 为此,您需要一个中央存储库来存储JVM存储对象的单个实例的信息。这可以是集中式数据库或集中式文件。

答案 1 :(得分:2)

通常不行,但您可以使用某种分布式缓存以逻辑方式实现它。例如。分布式Ehcache  (http://ehcache.org/documentation/2.6/get-started/about-distributed-cache

在这里,您可以在一个JVM中实例化单例,并立即将其放入分布式缓存中,该缓存在所有JVM中对其进行序列化。因此,所有JVM都具有相同的单例副本(现在它在理论上不再是单例,但逻辑上它是所有JVM中的相同对象)。

答案 2 :(得分:0)

否你无法实现它。完全同意 达维德洛伦佐。如果你尝试这样做,你将不得不使用反射(虽然不好),否则你将破坏单身人士的财产。