分布式资源管理

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

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

分布式资源管理_第1张图片
缓存+单机DB.png

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

分布式资源管理_第2张图片
定时轮询技术.png

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

分布式资源管理_第3张图片
Drm1.png

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

分布式资源管理_第4张图片
4.png

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

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

你可能感兴趣的:(分布式资源管理)