分布式资源管理

DRM(分布式资源管理)
大型的分布式系统中存在很多的配置文件,分布式资源管理解决了配置文件同步更新的问题,不仅仅是配置文件,此技术还可以支持缓存数据的同步一致,下面将简单介绍一下基于消息机制的分布式资源管理系统。
1、 传统的配置同步问题:
配置文件作为静态的config.xml文件存储在各个节点上,不可动态改变,修改配置需要重新部署应用,在大型实时系统中很不友好不易扩展。

2、 缓存+单机DB:
将配置信息存储在缓存中,当修改了缓存后可以将信息同步到数据库中,每一次更新都要查询数据库不太现实。

缓存+单机DB.png

3、 定时轮询技术
一台机器修改了数据库的配置信息后,其他机器定时轮询进行更新,轮询的时间设置是个关键,时间设置长了会导致数据长时间不同步,时间设置的短了会导致频繁访问数据库造成资源的浪费,所以该方法也不适合对于读多写少的分布式系统。

定时轮询技术.png

4、 Drm Version1
基于配置中心的发布-订阅模型(publish-subscribe)Drm服务器是发布者,应用服务器是订阅者,Drm为应用的每一个配置项生成一个唯一标识的字符串,注册到配置中心,配置中实时将值推送给订阅者。但是这些配置值如果全部存在配置中心内存中会占用很大的空间因此也具有一定的缺点。

Drm1.png

5、 DRM Version2
配置发生更变后通知DrmServer,相应的配置值直接写入到DrmData缓存中,然后将指令发布到配置中心中,配置中心不存储数据而是将指令push到应用服务器端,应用服务器在接到推送指令后向缓存中pull相应的指令。

4.png

总结:DRM主要用于有读多写少任务的分布式系统中,其保证了最终一致性,且必须由后台去调用,如果报漏给前端,会造成大量调用,给配置中心带来压力。其原理是基于发布订阅模型和消息的数据同步,应用的场景不仅在配置文件中,例如:集群中各个节点初始化后需要将将数据库的内容缓存到本机,但是如果对数据库内容进行了改变,则需要有机制来通知各节点进行缓存的更新,drm在这种场景下可以很好的发挥作用。

PS:写文章用心良苦,转载请注明出处

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容

  • Spring Cloud为开发人员提供了快速构建分布式系统中一些常见模式的工具(例如配置管理,服务发现,断路器,智...
    卡卡罗2017阅读 134,891评论 18 139
  • Android 自定义View的各种姿势1 Activity的显示之ViewRootImpl详解 Activity...
    passiontim阅读 173,179评论 25 708
  • 一产生背景 运维成本:如果采用“一个框架一个集群”的模式,则可能需要多个管理员管理这些集群;进而增加运维成本,而共...
    曹振华阅读 4,275评论 0 5
  • 春风吹皱一池春水 和煦的风吹开了黄的红的的花,吹绿了两岸的树,吹皱了一池春水。我站在凭栏处,...
    紫雪古城阅读 171评论 0 0
  • 在我们社团办公室有个传统,如果你不锁屏,将会有人用你的账号在内部后台发帖说是“我要bg了”或者“我要跳舞了”。 注...
    ZenoZeng阅读 339评论 1 3