当前位置: 首页 > news >正文

网站编辑年终总结在线培训系统平台

网站编辑年终总结,在线培训系统平台,济南做网站的哪家好,怎么把源码做网站实际中遇到了这样一个问题: The producer group[xxxx] has been created before, specify another instanceName (like producer.setInstanceName) please. 发生的原因是:一个进程内,创建了多个相同topic的producer。 所以问题就转换成了如何…

实际中遇到了这样一个问题:
The producer group[xxxx] has been created before, specify another instanceName (like producer.setInstanceName) please.
发生的原因是:一个进程内,创建了多个相同topic的producer。
所以问题就转换成了如何避免进程内多个实例的创建。(还有一个解决办法就是producer.setInstanceName(UUID.getUUID()))
解决问题:就要用到了单例模式。
单例模式可以参考:synchronized能不能保证有序性??单例模式下的懒汉和双检锁的思考


分析:
为啥不用分布式锁呢?分布式其实保证集群内唯一,就是不管你有多少台机器,全局就一个,唯一的一个。
分布式环境,其实就是不同的进程间的问题。集群内唯一,实质就是进程间唯一

“进程唯一”指的是进程内唯一、进程间不唯一。“线程唯一”指的是线程内唯一、线程间不唯一。集群相当于多个进程构成的一个集合,“集群唯一”就相当于是进程内唯一、进程间也唯一。也就是说,不同的进程间共享同一个对象,不能创建同一个类的多个对象。

我们知道,经典的单例模式是进程内唯一的,那如何实现一个进程间也唯一的单例呢?如果严格按照不同的进程间共享同一个对象来实现,那集群唯一的单例实现起来就有点难度了。

具体来说,我们需要把这个单例对象序列化并存储到外部共享存储区(比如文件)。进程在使用这个单例对象的时候,需要先从外部共享存储区中将它读取到内存,并反序列化成对象,然后再使用,使用完成之后还需要再存储回外部共享存储区。

为了保证任何时刻,在进程间都只有一份对象存在,一个进程在获取到对象之后,需要对对象加锁,避免其他进程再将其获取。在进程使用完这个对象之后,还需要显式地将对象从内存中删除,并且释放对对象的加锁。


1.如何理解单例模式的唯一性?

单例类中对象的唯一性的作用范围是“进程唯一”的。“进程唯一”指的是进程内唯一,进程间不唯一;“线程唯一”指的是线程内唯一,线程间可以不唯一。实际上,“进程唯一”就意味着线程内、线程间都唯一,这也是“进程唯一”和“线程唯一”的区别之处。“集群唯一”指的是进程内唯一、进程间也唯一。

2.如何实现线程唯一的单例?

我们通过一个HashMap来存储对象,其中key是线程ID,value是对象。这样我们就可以做到,不同的线程对应不同的对象,同一个线程只能对应一个对象。实际上,Java语言本身提供了ThreadLocal并发工具类,可以更加轻松地实现线程唯一单例。

3.如何实现集群环境下的单例?

我们需要把这个单例对象序列化并存储到外部共享存储区(比如文件)。进程在使用这个单例对象的时候,需要先从外部共享存储区中将它读取到内存,并反序列化成对象,然后再使用,使用完成之后还需要再存储回外部共享存储区。为了保证任何时刻在进程间都只有一份对象存在,一个进程在获取到对象之后,需要对对象加锁,避免其他进程再将其获取。在进程使用完这个对象之后,需要显式地将对象从内存中删除,并且释放对对象的加锁。

4.如何实现一个多例模式?

“单例”指的是一个类只能创建一个对象。对应地,“多例”指的就是一个类可以创建多个对象,但是个数是有限制的,比如只能创建3个对象。多例的实现也比较简单,通过一个Map来存储对象类型和对象之间的对应关系,来控制对象的个数。

参考
1.https://blog.51cto.com/u_15273875/2917903
2.王铮《设计模式之美》

http://www.hrbkazy.com/news/6079.html

相关文章:

  • 如何做网站解析青岛网站建设
  • 开发公司名字南昌网站seo外包服务
  • 无锡网站设计厂家微信营销平台有哪些
  • 网页策划方案800字优化网站关键词排名
  • 网站开发费用多少钱线上销售如何找到精准客户
  • 长春网站建设工作室网站关键词推广优化
  • wordpress关注公众号发送验证码google关键词优化排名
  • 新华书店网上商城seo推广教程视频
  • 网站架构设计面试技巧网站关键词优化案例
  • 制作手机app需要学什么编程百度优化大师
  • 滨州市城乡建设部网站首页发外链的网址
  • 绥化北京网站建设企业宣传推广方案
  • 做网站做地区好还是全国的好站长工具精品
  • 高密做网站的价位信息流广告文案
  • 电子商务网站建设可行性 分析站长统计幸福宝2022年排行榜
  • 独立站建设公司免费观看b站的广告网站平台
  • 深圳做分销商城网站口碑营销公司
  • 教育网站开发价钱新闻发布会新闻通稿
  • 东营网站建设运营公司谷歌官网首页
  • 怎么免费给网站做收录腾讯广告投放平台
  • 如何查询网站空间商东莞关键字排名优化
  • 乐山 网站建设刷赞网站推广永久
  • 肥乡专业做网站seo文章优化方法
  • 免费咨询皮肤科医生回答在线网络推广的优化服务
  • mac 做网站开发明星百度指数排行
  • 新闻网站开发摘要合肥做网站哪家好
  • 建站行业市场地推任务网
  • 只用js可以做网站吗邯郸网站优化
  • 有那些专门做财务分析的网站网络营销课程大概学什么内容
  • 求做图的网站合肥seo搜索优化