首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
社区首页 >问答首页 >如何在分布式环境中处理单例类

如何在分布式环境中处理单例类
EN

Stack Overflow用户
提问于 2011-09-14 04:25:12
回答 5查看 8.3K关注 0票数 5

当应用程序分布在多个JVM上时,我的单个ton类将在每个JVM上有多个实例。为此,我必须生成一个唯一的ID,我必须使用一个单例模式类。它在独立环境中工作得很好。如何在分布式环境中创建一个单例模式,使我们只使用一个实例?

编辑:对于我的应用程序,我需要创建像这样的userid

如果名称类似于Pavan Kumar,则用户in应为pavankumar如果系统中已存在此用户in,则用户in应为pavankumar1、pavankumar2等......

如果对具有相同名称的用户的多个请求跨越不同的服务器,则可能导致重复的id。为此,我想使用一个跨分布式环境的单例。

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2014-07-19 18:48:15

经过很长一段时间,我找到了这个问题的可靠答案。可以使用AKKA工具包在分布式环境中实现Singleton。有关如何实现的详细信息,请参阅此处的http://doc.akka.io/docs/akka/2.3.1/contrib/cluster-singleton.html

票数 3
EN

Stack Overflow用户

发布于 2011-09-14 06:28:10

您可以尝试hazelcast [ doc ].This库,它允许您拥有分布式锁和数据结构,您可以使用它们来编写单例。

票数 3
EN

Stack Overflow用户

发布于 2011-09-14 04:31:47

您是否考虑过使用像Apache Commons的Java Caching System或Oracle的Coherence Cache这样的分布式缓存?这可能有些夸大其词,但这真的取决于你到底想做什么。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7411230

复制
相关文章
如何在phpunit中mock一个单例类
Mock简介 当我们对A类进行单元测试时,A类可能依赖了B类,为了减少依赖,方便A类方法的测试,我们可以模拟一个B类,简单规定其各方法的返回值(而非真正实现具体逻辑)。 Phpunit中提供了一套模拟类的api,简单使用如下:
跑马溜溜的球
2020/12/07
1.8K0
如何在phpunit中mock(模拟)一个单例类
Mock简介 当我们对A类进行单元测试时,A类可能依赖了B类,为了减少依赖,方便A类方法的测试,我们可以模拟一个B类,简单规定其各方法的返回值(而非真正实现具体逻辑)。Phpunit中提供了一套模拟类的api,简单使用如下:
跑马溜溜的球
2020/12/07
3.1K0
单例类简写
  利用static语法特性,被static关键词标识的变量只会初始化一次,且生命周期为全局的。
Qt君
2019/07/15
1.3K0
集群环境中的单例设计模式
在创建线程池、缓存等对象时,我们可以使用单例模式来避免资源的浪费。但是如果你想要存储比如产品价格等全局数据的时候,单例模式就成了一种反面模式,要考虑用其他方法替代了。
星哥玩云
2022/06/28
5750
类的单例模式
# new:创建对象自动调用 # new原理:返回值,返回值对象,当前类 -- 条件满足了 init # 实例对象 -- instance class Person(object): cls_shuxing = None # 控制只做一次初始化的开关 -- 开关打开 -- 表示判断 is_First = True def __new__(cls, *args, **kwargs): if cls.cls_shuxing == None:
汪凡
2018/05/29
5980
如何在Spring中优雅的使用单例模式?
单例模式私有化了构造方法,所以其他类无法使用通过new的方式去创建对象,在其他类使用该类的实例时,只能通过getInstance去获取。但是可以通过Constructor反射的方式获取私有化的构造器然后通过构造方法去创建对象。
关忆北.
2021/12/07
6.5K0
scala类与伴生类、单例
类似python元类与apply方法类似python中call方法 class Person(name: String, var age: Int){ println("Person") //private[this] var age = 18 // 字段必须得初始化 var gender:String=_ def Age=age //这个是方法 def increamen(){age+=1} def this(name:String, age:Int, gender:String
用户1733462
2018/06/01
5500
JAVA单例MongoDB工具类
JAVA驱动版本: <!-- MongoDB驱动 --> <dependency> <groupId>org.mongodb</groupId> <artifactId>mongo-java-driver</artifactId> <version>3.0.2</version> </dependency> 工具类代码如下: package utils; import java.util.A
用户7705674
2021/09/22
9290
数据结构|单例类
要知道什么是单例类,首先就得清楚什么是单例模式。单例模式,是一种简单的常用软件设计模式,在程序运行中有且只有一个实例。既应用该模式的一个类只能有一个对象实类,这种类称为单例类。
算法与编程之美
2019/07/17
4400
以元类实现单例
下面那句只是为了节省一点内存,可以用 sys.getsizeof 来验证这一点,这里不再赘述。如果你愿意的话,直接 pass 也可以。
kifuan
2023/02/23
2230
kotlin 之单例类详解
DCL双检测锁机制: 用DCL双检测锁机制为什么要用valoatile修饰,因为lazyMan=new LazyMan(), 并非是一个原子操作。事实上在JVM中大概做了3件事。
易帜
2022/11/21
6830
kotlin 之单例类详解
JAVA中单例模式_Java中哪些是单例的
2)单例模式分类:饿单例模式(类加载时实例化一个对象给自己的引用),懒单例模式(调用取得实例的方法如getInstance时才会实例化对象)(java中饿单例模式性能优于懒单例模式,c++中一般使用懒单例模式)
全栈程序员站长
2022/09/22
1.5K0
iOS中的单例你用对了么?Objective-C中的单例Swift中的单例
单例模式怎么定义的,可能在不同的语言,不同的书中不完全一样,但是概况开来都应该是:一个类有且仅有一个实例,并且自行实例化向整个系统提供。 因此,首先你可能需要确定你是真的需要一个单例类,还是说仅仅是需要一个方便调用的实例化方法。如果你是真的需要一个单例类,那么你就应该确保这个单例类,有且仅有一个实例(不管怎么操作都只能获取到这个实例)。 最近看到一些github上的单例使用,别人的用法,有一些思考,然后写demo测试了下,就这个简单的单例也有一些坑呢,希望能给他人一些提醒。
Haley_Wong
2018/08/22
7170
Java枚举单例模式比DCL和静态单例要好?———反编译分析单例枚举类
  当然不行,当2个线程同时执行getInstance方法时,都会执行第一个if判断,由于锁机制的存在,会有一个线程先进入同步语句,而另一个线程等待,当第一个线程执行了new Singleton()之后,就会退出synchronized的保护区域,这时如果没有第二重if判断,那么第二个线程也会创建一个实例,这就破坏了单例。
砖业洋__
2023/05/06
6220
Java枚举单例模式比DCL和静态单例要好?———反编译分析单例枚举类
Python基础 如何实现单例类
要知道什么是单例类,首先就得清楚什么是单例模式。单例模式,是一种简单的常用软件设计模式,在程序运行中有且只有一个实例。既应用该模式的一个类只能有一个对象实类,这种类称为单例类。网上的大多数解释都比较繁琐、复杂。这里小编通过自己理解尽量通俗、简单的向大家介绍单例类。
算法与编程之美
2019/07/17
8010
Python中的单例
单例:是指创建对象时,在同一个类中只能访问同一个内存地址, 作用:单例可以实现不通模块之间的数据共享 #定义单列类 class Singleton(object): #定义类属性保存创建对象结果 singleton = None #是否第一次初始化 is_first = False def new(cls, *args, **kwargs): #判断类属性是否为None,非空表示要创建对象 if not cls.singleton: #保存创建对象 cls.singleton = object.new(cls) #对象创建以后以及第一次创建都需要把结果返回 return cls.singleton def init(self, name, age): #判断是否是第一次进行初始化,不是第一次,则不再初始化 #一般我们只需要对new进行判断,确定每次创建指向的内存地址不变 if not self.class.is_first: self.name = name self.age = age #初始化完成,设置成已经初始化状态 self.class.__is_first = True
py3study
2020/01/14
5650
u3d单例类
立羽
2023/08/24
1360
再议单例模式和静态类
单例模式还是静态类,这是一个老话题了,从我刚开始接触 Java 的时候就看到这样的讨论。在这里我总结一下,也添加一点点新东西。
四火
2022/07/15
4230
再议单例模式和静态类
单例模式(含多线程处理)
单例,顾名思义一个类只有一个实例。为什么要使用单例模式,或者说什么样的类可以做成单例的?在工作中我发现,使用单例模式的类都有一个共同点,那就是这个类没有状态,也就是说无论你实例化多少个对象,其实都是一样的。又或者是一个类需要频繁实例化然后销毁对象。还有很重要的一点,如果这个类有多个实例的话,会产生程序错误或者不符合业务逻辑。这种情况下,如果我们不把类做成单例,程序中就会存在多个一模一样的实例,这样会造成内存资源的浪费,而且容易产生程序错误。总结一下,判断一个类是否要做成单例,最简单的一点就是,如果这个类有多个实例会产生错误,或者在整个应用程序中,共享一份资源。
烂猪皮
2021/04/23
6140
单例模式(含多线程处理)
Spring-IOC-从单例缓存中获取单例 Bean
上面代码主要是做检测工作,核心在于委托给getObjectFromFactoryBean获得 Bean 对象,主要如下:
程序员酷森
2020/10/19
8430

相似问题

如何在分布式环境中实现Spring单例?

33

处理单例类实例

14

在多处理中创建单例类

13

单例类中的静态类也是单例类吗?

126

Swift Bluetooth单例类处理程序

141
添加站长 进交流群

领取专属 10元无门槛券

AI混元助手 在线答疑

扫码加入开发者社群
关注 腾讯云开发者公众号

洞察 腾讯核心技术

剖析业界实践案例

扫码关注腾讯云开发者公众号
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档
查看详情【社区公告】 技术创作特训营有奖征文